Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Einfache If Else-Anweisung in SQL

Es sieht so aus, als ob Sie versuchen, Excels IF(condition, true_response, false_response) zu verwenden Syntax. Das Äquivalent in T-SQL ist das CASE WHEN THEN ELSE END Syntax:

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

Dies funktioniert mit komplexeren Abfragen als in dem Beispiel, das Sie uns geben. Eine andere Möglichkeit wäre

, wenn Sie mehrere mögliche Werte für dasselbe Feld haben, die dieselbe Antwort zurückgeben
SELECT 
    CASE 
        WHEN CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY IN ('USD','EUR') THEN 1
        ELSE 0
    END 
FROM 
    CONTRACTS_IN_DIFFERENT_CURRENCIES

Dies ist jedoch nicht die richtige Syntax, um nur die Zeilen mit bestimmten Währungen zu erhalten. vorherige Antwort mit

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

würde dafür am besten funktionieren.