我有一个很长的查询,我将总结如下:
SELECT Name, Type, Rev
From Table
它返回类似:
Name Type Checked
Bob Grp1 Frank
Bob Grp2 Frank
Bob Grp3 Frank
Lisa Grp1 Sarah
Lisa Grp3 Sarah
现在,由于我最多有3种类型,我希望它们是自己的列,并看到第3列中的值显示在每种类型下:
例如:
Name Grp1 Grp2 Grp3
Bob Frank Frank Frank
Lisa Sarah NULL Sarah
基本上我正在寻找有关如何执行此操作的查询。任何反馈都将不胜感激。
答案 0 :(得分:2)
快速示例
Select *
From YourTable
Pivot (max(Checked) for Type in ([Grp1],[Grp2],[Grp3])) P
编辑 - 如果您有多个显示的字段
Select *
From (
SELECT Name, Type, Checked
From Table
) A
Pivot (max(Checked) for Type in ([Grp1],[Grp2],[Grp3])) P
答案 1 :(得分:1)
我通常使用CASE语句:
select Name,
case Type when 'Grp1' then checked else null end as 'Grp1',
case Type when 'Grp2' then checked else null end as 'Grp2',
case Type when 'Grp2' then checked else null end as 'Grp3'
from table