需要执行某些操作的sql查询:根据其他列将行分为单个列 [英] need sql query for some action: rows into single column depending on other column
本文介绍了需要执行某些操作的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:
cl1 | keywords |
---|---|
c1 | cc1,cc2 |
d1 | dd1,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:
cl1 | cl2 | keywords |
---|---|---|
c1 | cc1 | cc1,cc2 |
c1 | cc2 | cc1,cc2 |
d1 | dd1 | dd1,dd2 |
d1 | dd2 | dd1,dd2 |
More at:
T-SQL Convert rows into single column[^]
Related topics:
STUFF()[^]
FOR clause[^]
COLEASCE[^]
这篇关于需要执行某些操作的sql查询:根据其他列将行分为单个列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文