0

私は2つのテーブルを持っています:

学生 (ks2en、ks2ma、ks2av)

件名(名前)

科目に応じて学生の列に値をリストする次の条件文があります。その後、これらはそれぞれの学生の列によってグループ化されます。

任意の組み合わせで、結果セットの '' 空白値を 'No KS2' に置き換えたいと思います。

これは、件名テーブルの件名に基づいて、学生テーブルから適切な列を条件付きで選択する私のケースステートメントです。

   CASE 
      WHEN COALESCE(Name, '') = 'English' THEN
        [Ks2en]
      WHEN COALESCE(Name, '') = 'Mathematics' THEN
        [Ks2ma]
      ELSE
        [Ks2av]
   END AS KS2

サンプルデータ:

ks2en
2a
2a
3a
4c

5a
3a
2a

1c

サブジェクト名が「English」の場合、次の結果が表示されます。

KS2
No KS2
1c
2a
3a
4c
5a

明確にするために、ステートメントの順序付け、グループ化、または条件要素について心配する必要はありません。これらはすべて機能しているためです。上記のように結果セットの値のグループの 1 つとして表示されるように、空白の値を「No KS2」に置き換えるだけです。

4

1 に答える 1

2

どうですか:

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 AS KS2

役に立たなかったのでインナーCOALESCEを外しました!

于 2013-10-02T15:20:46.757 に答える