Sql server SQL数据透视(如果存在)

Sql server SQL数据透视(如果存在),sql-server,Sql Server,我想我需要一个PIVOT,但我还没有找到一个只使用1列的示例。 当前数据 CustID Value 1 A 1 B 1 C 2 A 3 B 4 A 4

我想我需要一个PIVOT,但我还没有找到一个只使用1列的示例。 当前数据

CustID       Value                
1              A                   
1              B
1              C                  
2              A                   
3              B                  
4              A
4              C  
我需要

StudentNumber      A      B     C
1                  Yes   Yes  Yes
2                  Yes   No    No
3                  No    Yes   No
4                  Yes   No    Yes
我很感激这可能是一个非常简单的问题,但我真的很挣扎

试试这个

SELECT custid,
       Max(CASE
             WHEN value = 'a' THEN 'YES' else 'NO'
           END) A,
       Max(CASE
             WHEN value = 'b' THEN 'YES' else 'NO'
           END) B,
       Max(CASE
             WHEN value = 'c' THEN 'YES' Else 'NO'
           END) C
FROM   <tablename>
GROUP  BY CustID 

您可以使用列列表中的case语句检查null以获取所需的值

select P.CustID,
       case when P.A is null then 'No' else 'Yes' end as A,
       case when P.B is null then 'No' else 'Yes' end as B,
       case when P.C is null then 'No' else 'Yes' end as C
from YourTable as T
pivot (min(T.Value) for T.Value in (A,B,C)) as P
或者,您可以使用派生表,列列表中的isnull表示无值


你能用pivot格式试试吗?用max-case我们可以用任何一种方式。就这么简单!非常感谢
select P.CustID,
       isnull(P.A, 'No') as A,
       isnull(P.B, 'No') as B,
       isnull(P.C, 'No') as C
from (
     select CustID,
            Value,
            'Yes' as S
     from YourTable
     ) as T
pivot (min(T.S) for T.Value in (A,B,C)) as P