グループ化された値の結果セットを並べ替える 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