1

テーブルaにデータがあり、それを消して別のテーブルbに作成したい. これを行う方法を疑問に思います。ネストされた CASE 式を実行することを考えていました。しかし、これは実行可能ですか?

例:-

表 a:-

S En Eg

-0.2 7888 99 90 9000 788 100 999 888

これを行う別のテーブルbを作成したい:-

CASE WHEN S < 0 then (S+1/En-Eg)
ELSE (S-1/En-Eg)) END AS Z from a を選択

また、Z を他の値と比較したい:-

z > 0 の場合は「良い」、そうでない場合は「悪い」

みたいなことを、テーブルb内でもできますか?

4

1 に答える 1

2

サブクエリで実行した場合は、CASE 式を「再利用」できます。

SELECT z, CASE WHEN z > 0 THEN 'Good' ELSE 'Bad' END AS zdesc
FROM (
    SELECT CASE WHEN S < 0 
        THEN (S + 1 / En - Eg)
        ELSE (S - 1 / En - Eg) END AS z 
    FROM a
) b
于 2009-10-06T03:00:25.607 に答える