這裏的SQL查詢與MAX CASE WHEN ...需要幫助的MAX CASE查詢時刪除空記錄
SELECT dbo.icalificaciones.idalumno,
dbo.ialumnosins.appaterno + ' ' + dbo.ialumnosins.apmaterno + ' ' + dbo.ialumnosins.nombre AS Alumnos,
MAX(CASE WHEN idparcial = 1 THEN calfinal ELSE null END) AS U1,
MAX(CASE WHEN idparcial = 2 THEN calfinal ELSE null END) AS U2,
MAX(CASE WHEN idparcial = 3 THEN calfinal ELSE null END) AS U3,
MAX(CASE WHEN idparcial = 4 THEN calfinal ELSE null END) AS U4,
MAX(CASE WHEN idparcial = 5 THEN calfinal ELSE null END) AS U5,
MAX(CASE WHEN idparcial = 6 THEN calfinal ELSE null END) AS U6,
MAX(CASE WHEN idparcial = 7 THEN calfinal ELSE null END) AS U7,
MAX(CASE WHEN idparcial = 8 THEN calfinal ELSE null END) AS U8
FROM dbo.icalificaciones INNER JOIN dbo.ialumnosins ON dbo.icalificaciones.idalumno = dbo.ialumnosins.IDalumno
這裏的結果。 如何刪除空值? 我不需要U2,U3,U4 ... U8。 謝謝。
不要在查詢中包含它們嗎?或者你是否在說要動態確定結果中的整個列是否爲空並排除它們? –
是的,動態的。有些結果有8列。謝謝 –
您將不得不使用動態sql來確定是否要跳過某個列。這將是相當醜陋的。你爲什麼要動態地改變像這樣的select語句中的列數?它似乎充滿了挑戰。 –