这不是我第一次遇到这类问题而且我还没有弄明白。
我正在试图提取员工的记录,并找出他们所在的比赛。当前返回数据的方式如下:
Emp # | Race
-------------
1111 | White
1111 | Asian
我希望它最终看起来像这样:
Emp # | White | Black | Hispanic | Asian | Indian | Other
---------------------------------------------------------
1111 | Y | N | N | Y | N | N
我是通过CTE和PIVOT功能尝试过的,但我可能对PIVOT的使用方式没有太大的了解。
答案 0 :(得分:0)
像这样构建动态SQL
select Emp,
case when MAX(case when Race = 'White' then 1 else 0 end) = 1 then 'Y' else 'N' as White,
case when MAX(case when Race = 'Asian' then 1 else 0 end) = 1 then 'Y' else 'N' as Asian,
case when MAX(case when Race = 'Black ' then 1 else 0 end) = 1 then 'Y' else 'N' as Black
from [YourTable]
group by Emp