Mysql
 sql >> Database >  >> RDS >> Mysql

Semplice istruzione If Else in sql

Sembra che tu stia cercando di utilizzare IF(condition, true_response, false_response) di Excel sintassi. L'equivalente in T-SQL è CASE WHEN THEN ELSE END sintassi:

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

Questo funzionerà con query più complesse rispetto all'esempio che ci stai fornendo. Un altro modo per farlo, se hai un numero di possibili valori per lo stesso campo che restituirà la stessa risposta, sarebbe

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

Tuttavia, questa non è la sintassi corretta da utilizzare per ottenere solo le righe con determinate valute; la risposta precedente con

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

funzionerebbe meglio per quello.