sql >> データベース >  >> RDS >> Sqlserver

1行に複数の列の値

    SELECT  ID,
            MAX(CASE WHEN status = 5 THEN Status ELSE NULL END) col1,
            MAX(CASE WHEN status = 6 THEN Status ELSE NULL END) col2,
            MAX(CASE WHEN status = 7 THEN Status ELSE NULL END) col3
    FROM    tableNAME
    GROUP   BY ID
    

    PIVOTを使用する

    SELECT *
    FROM   (
              SELECT ID, Status, CASE Status 
                                  WHEN 5 THEN 'Col1'
                                  WHEN 6 THEN 'Col2'
                                  WHEN 7 THEN 'Col3'
                                END Stat
              FROM tableName
            ) src
            PIVOT
            (
              MAX(Status)
              FOR Stat IN ([Col1],[Col2],[Col3])
            ) pivotTbl
    


    1. Oracleは文字列に文字を挿入します

    2. REGEXP_LIKEのCHR(0)

    3. JSON_QUERY()SQL Server(T-SQL)の例

    4. MySQLエラー1215:外部キー制約を追加できません