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)