グループ化された値の結果セットを並べ替える ORDER BY 句があります。
ORDER By でやりたいことは、No KS2 行が一番上になることです。
値は 3 つの異なる列から条件付きで取り込まれますが、値は 3 つの列すべてで同じセットからのものです。
値は null、長さゼロの文字列、1c、1b、1a、2c、2b、2a、3c.... 5a、6c、6b、6a です。
現在、私の ORDER BY 句は、値の左側と値 DESC の右側に基づいて順序付けすることによって値を引き出します。
結果セットの例は次のようになります。
2a
3c
3b
4c
4b
4a
5c
5b
No KS2
これが私が望むものの例です:
No KS2
2a
3c
3b
4c
4b
4a
5c
5b
私が現在持っているコードはここにあります:
ORDER BY
LEFT(
CASE Name
WHEN 'English' THEN
CASE WHEN [Ks2en]=NULL OR [Ks2en]='' THEN
'No KS2'
ELSE
[Ks2en]
END
WHEN 'Mathematics' THEN
CASE WHEN [Ks2ma]=NULL OR [Ks2ma]='' THEN
'No KS2'
ELSE
[Ks2ma]
END
ELSE
CASE WHEN [Ks2av]=NULL OR [Ks2av]='' THEN
'No KS2'
ELSE
[Ks2av]
END
END,1),
RIGHT(
CASE Name
WHEN 'English' THEN
CASE WHEN [Ks2en]=NULL OR [Ks2en]='' THEN
'No KS2'
ELSE
[Ks2en]
END
WHEN 'Mathematics' THEN
CASE WHEN [Ks2ma]=NULL OR [Ks2ma]='' THEN
'No KS2'
ELSE
[Ks2ma]
END
ELSE
CASE WHEN [Ks2av]=NULL OR [Ks2av]='' THEN
'No KS2'
ELSE
[Ks2av]
END
END,1) DESC