我正在尝试创建一个SQL查询,该查询将根据分组因素将多个行连接在一起。希望有人可以提供帮助。
示例数据:
Code
001A
001B
001C
002A
002B
002C
002D
002E
我希望查询执行Where Code LIKE '001%'
然后左连接所有行。
导致:
Code1 Code2 Code3
001A 001B 001C
在数据中,例如Where Code Like '002%'
上的代码数量会有差异:
Code1 Code2 Code3 Code4 Code5
002A 002B 002C 002D 002E
非常感谢任何帮助。
答案 0 :(得分:1)
您可以使用pivot
和一些动态查询执行此操作:
declare @cols varchar(max), @query varchar(max)
set @cols = stuff((select distinct ',' + quotename(code)
from t
where code like '002%'
for xml path(''), type).value('.', 'varchar(max)')
,1,1,'')
set @query = 'select * from (select code from t)t
pivot (max(code) for code in (' + @cols + ')) p'
exec(@query)