0x01 常规方法 + 号拼接
注意:使用 + 号拼接的话,如果说,数据类型不同的话,是会报错的
例如:数字 + 字符串 是会报错的,所以为了解决这个问题可以使用 cast() 函数把数据全部转为 字符串类型
1> select cast(123 as varchar) + '|' + cast('456' as varchar);2> go+---------+| |+---------+| 123|456 |+---------+(1 rows affected)
0x02 concat()
注意:SQL Server 2012才新增concat()函数
注意:如果 concat 的参数有NULL会无视掉
用途:连接一个或多个字符串
语法:concat(str1,str2…)
# 不带NULL的1> select concat('123','456','aaa','789');2> go+--------------+| |+--------------+| 123456aaa789 |+--------------+(1 rows affected)
# 带NULL的1> select concat('123','456',NULL,'aaa','789');2> go+--------------+| |+--------------+| 123456aaa789 |+--------------+(1 rows affected)
0x03 concat_ws()
注意:SQL Server 2012才新增concat_ws()函数
注意:如果 concat_ws 的参数有NULL会无视掉
用途:使用固定连接符连接一个或多个字符串
语法:concat_ws(separator,str1,str2…)
# 不带NULL的1> select concat_ws('-','aa','bb','cc');2> go+----------+| |+----------+| aa-bb-cc |+----------+(1 rows affected)
# 带NULL的1> select concat_ws('-','aa','bb',NULL,'cc');2> go+----------+| |+----------+| aa-bb-cc |+----------+(1 rows affected)
