select mid,stuff((select distinct ','+uid from t1 where a.mid=mid for xml path('')),1,1,'') AS items from t1 a group by mid mid items 1 a,b,c,d 2 a,b,c 3 a,b,c --按字段分组,将该组下某个字段多行以逗号拼接成一行CREATE TABLE t1 ( mid INT, uid VARCHAR(1) )insert into t1 values (1,'a')insert into t1 values (1,'b')insert into t1 values (1,'b')insert into t1 values (1,'c')inser... declare @sql varchar(400) DECLARE @T1 TABLE(ID INT,SIZE_VALUE VARCHAR(10),SIZENAME VARCHAR(10) ) insert into @T1 SELECT ID=1,SIZE_VALUE='A001',SIZENA... with cte as ( select C.*,name FROM ( select abc00,x.y.value('.', 'VARCHAR(16)') as abc05,KID from ( select ABC00, CAST('' + REPLACE(abc05, ',','') + '' as xml ) as KID FROM APP_BUSINESS_CONTRACT where charindex(@split,@datas) #获取第一个 分隔 符所在位置 #@split为 分隔 符,通过什么 分隔 符号进 字段 分隔 #@datas为含有 分隔 符的字段,对此字段进 分隔 substring(@datas,@startindex,@endindex) #截取字段 #@datas用于截取的字段 #@startindex开始索引位置 #@endindex结束索引位置 len(@dat --试图1 create view v_projectuser as select t.F_ProjectId,t.F_UserId,u.F_ChineseName from T_ProjectUser t,T_User u where t.F_UserId = u.f_id and t.F_Enabled = '1'; --试图2(依赖试图1) create view v_projectusername as SELECT a.F_ProjectId , ST... 如图,将图1的结果变 图2的结果,使用函数 WMSYS.WM_CONCAT 即可。 查询语句需要配合使用group by select aa,wmsys.wm_concat(t1.name) from ( select t.name,to_char(t.createdate,'yyyy-mm-dd') aa from td_u 第二篇: sqlserver 临时表浅谈 拼接字符串在实际使用的时候,表结构可能与table_sub的不同,比如:表格中的每个main_id都不相同,那么查询出来的结果就不会拼到一起。如果table_sub的表结构如下: table_sub sub_id sub_hobby Create FUNCTION [dbo].[fn_SplitTSQL] (@String NVARCHAR(MAX), @Separator NCHAR(1) = N',') RETURNS TABLE RETURN SELECT -- N - LEN(REPLACE(LEFT(S, N), @Separator, '')) + 1 AS POS, ROW_NUMBER() OVER (ORDE... 方法二:使用XML表达式和节点方法 将 逗号 分隔 的字符串包含在 `<root><item>...</item></root>` 的 XML 表达式中,然后使用节点方法进 分割。例如: DECLARE @str NVARCHAR(MAX) = 'A,B,C,D' SELECT n.value('.', 'varchar(10)') as value FROM (SELECT CAST('<root><item>' + REPLACE(@str, ',', '</item><item>') + '</item></root>' as xml) as x) as t CROSS APPLY x.nodes('/root/item') as q(n) value -----