Mysql
 sql >> Base de données >  >> RDS >> Mysql

Instruction simple If Else en sql

Il semble que vous essayez d'utiliser le IF(condition, true_response, false_response) d'Excel syntaxe. L'équivalent en T-SQL est le CASE WHEN THEN ELSE END syntaxe :

SELECT 
    CASE 
        WHEN CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY ='USD' THEN 1 
        WHEN CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY='EUR' THEN 1
        ELSE 0
    END 
FROM 
    CONTRACTS_IN_DIFFERENT_CURRENCIES

Cela fonctionnera avec des requêtes plus complexes que l'exemple que vous nous donnez. Une autre façon de le faire, si vous avez un certain nombre de valeurs possibles pour le même champ qui renverront la même réponse, serait

SELECT 
    CASE 
        WHEN CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY IN ('USD','EUR') THEN 1
        ELSE 0
    END 
FROM 
    CONTRACTS_IN_DIFFERENT_CURRENCIES

Cependant, ce n'est pas la bonne syntaxe à utiliser pour obtenir uniquement les lignes avec certaines devises; la réponse précédente avec

SELECT *     
FROM 
    CONTRACTS_IN_DIFFERENT_CURRENCIES
WHERE 
    CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY IN ('USD','EUR') 

fonctionnerait mieux pour cela.