Sql server 2012 加入了一些新的系統函數, 下邊簡單介紹一下CONCAT
CONCAT 函數最多可以連接255個字符變量,當調用這個函數的時候需要至少接收兩個參數,參數類型不一定是字符串類型,也可以是可以隱式轉換為字符串的類型比如int ,float等類型。只要符合sql 2012的能隱式轉換為字符串的規則即可,當我們想把兩個值類型的數據連接起來的時候,不需要先將它們轉為nvarchar然後再通過“+”來連接了
如果傳入的參數為null,則會把它隱式轉換為空字符串,如果所有的輸入參數 都是null的話, 會返回一個類型為 VARCHAR(1)的空字符串。
語法規則
SELECT CONCAT (String_Value1, String_Value2, String_Value3 [, String_ValueN]) --
實例:
DECLARE @a VARCHAR(100)='Jim is now '
DECLARE @b INT=10
DECLARE @c VARCHAR(200)=' years old'
Select CONCAT (@a, @b, @c)
Go
Returns:
Jim is now 10 years old
上邊並沒有使用顯式轉換把int轉換為varchar,如果不使用concat呢,我能可能需要這麼來做了
DECLARE @a VARCHAR(100)='Jim is now '
DECLARE @b INT=10
DECLARE @c VARCHAR(200)=' years old'
SELECT @a+Convert(VARCHAR,(@b))+@c
Go;
Returns:
Jim is now 10 years old
下邊是輸入參數類型和輸出參數的類型:
下邊是輸入參數類型和輸出參數的類型:
Input Value / Type
Output Value / Type
SQL-CLR (TYPES & UDT)
NVARCHAR(MAX)
NVARCHAR(MAX)
NVARCHAR(MAX)
NVARCHAR(<=4000)
NVARCHAR(<=4000)
VARBINARY(MAX)
NVARCHAR(MAX)
ALL OTHER INPUT TYPES
VARCHAR(<=8000) *Unless one of the parameters is an NVARCHAR of any length and in that case, the output value would be in NVARCHAR(MAX)
sqlserver 2012還有很多其他新的函數加入
Conversion functions PARSE PARSE TRY_CONVERT TRY_CONVERT TRY_PARSE TRY_PARSE Date and time functions DATEFROMPARTS DATEFROMPARTS DATETIME2FROMPARTS DATETIME2FROMPARTS DATETIMEFROMPARTS DATETIMEFROMPARTS DATETIMEOFFSETFROMPARTS DATETIMEOFFSETFROMPARTS EOMONTH EOMONTH SMALLDATETIMEFROMPARTS SMALLDATETIMEFROMPARTS TIMEFROMPARTS TIMEFROMPARTS Logical functions CHOOSE CHOOSE IIF IIF String functions CONCAT CONCAT FORMAT FORMAT