web-dev-qa-db-fra.com

SELECT utilisant 'CASE' en SQL

J'ai un ensemble de mappages un à un A -> Apple, B-> Banana et comme ça .. Ma table a une colonne avec des valeurs comme A, B, C ..

Maintenant, j'essaie d'utiliser une instruction select qui me donnera le résultat direct

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

Mais je n'obtiens pas le bon résultat, veuillez m'aider ..

8
Vamshi

Ceci est juste la syntaxe de l'instruction case, elle ressemble à ceci.

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

Pour rappel rappelez-vous; aucune affectation n'est effectuée, la valeur devient le contenu de la colonne. (Si vous vouliez l'assigner à une variable, vous le mettriez avant l'instruction CASE).

40
Hogan

Changer pour:

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

Essaye ça.

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

quelle plateforme ?

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