web-dev-qa-db-ja.com

SQLで「CASE」を使用したSELECT

A-> Apple、B-> Bananaなどの1対1マッピングのセットがあります。私のテーブルには、A、B、C。のような値を持つ列があります。

今、私は私に直接結果を与える選択ステートメントを使用しようとしています

SELECT 
  CASE 
     WHEN FRUIT = 'A' THEN FRUIT ='Apple' 
     ELSE WHEN FRUIT ='B' THEN FRUIT ='BANANA'     
 FROM FRUIT_TABLE;

しかし、正しい結果が得られません。助けてください。

8
Vamshi

これは、caseステートメントの構文にすぎず、次のようになります。

SELECT 
  CASE 
    WHEN FRUIT = 'A' THEN 'Apple' 
    WHEN FRUIT = 'B' THEN 'BANANA'     
  END AS FRUIT
FROM FRUIT_TABLE;

覚えておいてください。割り当ては実行されず、値は列の内容になります。 (それを変数に割り当てたい場合は、CASEステートメントの前に配置します)。

40
Hogan

への変更:

SELECT 
  CASE 
    WHEN FRUIT = 'A' THEN 'Apple' 
    WHEN FRUIT = 'B' THEN 'BANANA'     
  END
FROM FRUIT_TABLE;
4
everton

これを試して。

SELECT 
  CASE 
     WHEN FRUIT = 'A' THEN 'Apple'
     WHEN FRUIT = 'B' THEN 'BANANA'
     ELSE 'UNKNOWN FRUIT'
  END AS FRUIT
FROM FRUIT_TABLE;
3
peter.petrov

どのプラットフォーム ?

SELECT 
  CASE 
    WHEN FRUIT = 'A' THEN 'Apple' 
    ELSE FRUIT ='B' THEN 'BANANA' 
   END AS FRUIT     
FROM FRUIT_TABLE;
1
venergiac