程序员人生 网站导航

SQL Server 2012 引入CONCAT函数

栏目:Sqlserver时间:2013-12-21 20:40:52

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

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐