SQL字符串拼接函数concat()、collect_set()、collect_list()和concat_ws()用法

concat()函数和concat_ws()函数之间的字符串连接存在显着差异。
concat()函数连接字符串时,只要任意元素为NULL,结果就会返回NULL。
concat_ws()函数不会返回NULL,即使它是非NULL字符串。
另外,concat_ws()函数需要指定分隔符,且分隔符不能为null,否则结果将返回null。
collect_set()和collect_list()函数处理分组数据的方式有所不同。
collect_set()和collect_list()都用于分组,将列转换为数组并返回。
不同之处在于collect_set会删除重复项,而collect_list不会。
例如,使用collect_set进行分组时,如果结果未排序,可以通过将collect_set改为collect_list或使用sort_array函数进行排序来解决问题。
group_concat()函数用于GROUPBY查询语句中,用于组合来自同一组的值并返回字符串结果。
语法为:GROUP_CONCATE([特定]要连接的字段[按字段ASC/DSC排序][分隔符'分隔符'])。
可以使用DIFFERENT排除重复值,ORDERBY子句可以对结果进行排序,分隔符用于指定分隔符,默认为逗号。
例如,使用group_concat()和groupby查询姓名相似的人的ID。
同时,您可以使用orderby对结果进行排序并指定分隔符。
可以使用分隔符。
这不仅允许每个名字只显示一次,而且还可以显示所有同名人员的ID。

SQL如何实践字符串拼接:

--创建表createtableM(idint,dictvarchar(10))创建表N(billnoint,Zaoxundictdocvarchar(100))--向值M中插入数据s(1,'A')插入M值(2,'B')插入M值(3,'C')插入M​​values(4,'D')插入N个值(1,'1,2,3')插入N个值(2,'2,3')插入N个值(3,'1,2),3,4')--创建函数创建函数fn_myStr(@StrVarchar(8000))返回Varchar(8000)AsBeginDeclare@RStVarchar(8000)=@Str兆凳子ThisSselect@RSt=replace(@RSt,id,dict)FromMReturn@RStEnd--QuerySelect*fromMselectbillno,dbo.fn_myStr(dictdoc)AsdictdocfromN