需要执行某些操作的sql查询:根据其他列将行分为单个列 [英] need sql query for some action: rows into single column depending on other column

查看:99
本文介绍了需要执行某些操作的sql查询:根据其他列将行分为单个列的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



请告诉我一个sql查询以执行此操作

假设以下是我当前拥有的表:

cl1 | cl2 |关键字
c1 | cc1 |
c1 | cc2 |
d1 | dd1 |
d1 | dd2 |
假设以下是我想要的表

cl1 | cl2 |关键字
c1 | cc1 | cc1,cc2
c1 | cc2 | cc1,cc2
d1 | dd1 | dd1,dd2
d1 | dd2 | dd1,dd2

Hi ,

please tell me a sql query to perform this action

suppose following is the table i currently have :

cl1 | cl2 | keywords
c1 | cc1|
c1 | cc2|
d1 | dd1|
d1 | dd2|
suppose following is the table i want

cl1 | cl2 | keywords
c1 | cc1| cc1,cc2
c1 | cc2| cc1,cc2
d1 | dd1| dd1,dd2
d1 | dd2| dd1,dd2

推荐答案

尝试以下操作:
选项1:
Try this:
Option 1:
SELECT  [cl1], STUFF( (SELECT',' + [cl2] AS 'text()'
                  FROM [A_TEST].[dbo].[Table_3] t2
                  WHERE t2.cl1 = t1.cl1
                  FOR XML PATH('')), 1, 1, '') AS [keywords]
   FROM [A_TEST].[dbo].[Table_3] t1
   GROUP BY [cl1]
   GO


结果:

cl1 关键字
c1 cc1, cc2
d1 dd1,dd2


选项2:


Results:

cl1keywords
c1cc1,cc2
d1dd1,dd2


Option 2:

SELECT  [cl1], [cl2], STUFF( (SELECT',' + [cl2] AS 'text()'
                  FROM [A_TEST].[dbo].[Table_3] t2
                  WHERE t2.cl1 = t1.cl1
                  FOR XML PATH('')), 1, 1, '') AS [keywords]
   FROM [A_TEST].[dbo].[Table_3] t1
   GROUP BY [cl1], [cl2]
   GO



结果:

cl1 cl2 关键字
c1 cc1 cc1,cc2
c1 cc2 cc1,cc2
d1 dd1 dd1,dd2
d1 dd2 dd1,dd2



更多信息:
T-SQL将行转换为单列 [ STUFF() [ FOR子句 [ COLEASCE [



Results:

cl1cl2keywords
c1cc1cc1,cc2
c1cc2cc1,cc2
d1dd1dd1,dd2
d1dd2dd1,dd2



More at:
T-SQL Convert rows into single column[^]

Related topics:
STUFF()[^]
FOR clause[^]
COLEASCE[^]


这篇关于需要执行某些操作的sql查询:根据其他列将行分为单个列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆