我需要帮助写作SQL

时间:2015-03-17 18:33:09

标签: database tsql loops cursor

有人可以帮我写一个循环遍历表的查询,并将结果输出到临时表中,如下所示:

  lvl State Program Code

    A   WI  4045      
    B   WI  4045      
    E   WI  4045      
    F   WI  4045      
    I   WI  4045      
    M   WI  4045      
    P   WI  4045      
    R   WI  4045      
    T   WI  4045      

输出

Program Code    State   A   E   M   R   T

4053             WI     -   X   -   -   X

1 个答案:

答案 0 :(得分:0)

您希望透视表格中的数据。您不需要遍历表格。 使用Case语句的简单Group by可以解决这个问题。如果您了解基本的t-sql,则下面的查询将帮助您入门。

SELECT 
[Program Code],[State]
,[A] = MAX( CASE WHEN [lvl]='A' THEN 'X' else '' END)
,[B] = MAX( CASE WHEN [lvl]='B' THEN 'X' else '' END)
,[E] = MAX( CASE WHEN [lvl]='E' THEN 'X' else '' END)
FROM Table1
GROUP BY [Program Code],[State]

这是SQLFiddle