我不认为自己是一个完整的 SQL 新手,但我已经断断续续地盯着这个问题两天了,我开始想也许我就是!
使用以下两个表:
ID Category
1 Animal
2 Color
3 Sport
Name ID Value
Fred 1 Cat
Fred 2 Blue
Fred 3 Football
Sally 1 Dog
Sally 3 Jogging
James 2 Green
Anne 3 Swimming
我无法找到 group by、子查询、union、cte 或 hub 命令的任何组合,这些命令将从“(ID = 1 或 ID = 2)”查询返回的多行合并到具有多列的不同行中。
E.G.:
where (ID=1 or ID=2)
Name Animal Color
Fred Cat Blue
Sally Dog NULL
James NULL Green
任何人都可以告诉我是否有一个有效的 SQL 解决方案来解决这个问题,或者我是否在浪费时间在应该由报告中的代码处理的事情上?
Thanks
这是 PIVOT 语法
SELECT Name,[1] as Animal, [2] as Color
FROM
(SELECT Name,Id,Value
FROM Table) AS SourceTable
PIVOT
(
MIN(Value)
FOR Id IN ([1], [2])
) AS PivotTable;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)