sql >> Base de Datos >  >> RDS >> Mysql

Declaración simple If Else en sql

Parece que está intentando usar IF(condition, true_response, false_response) de Excel sintaxis. El equivalente en T-SQL es CASE WHEN THEN ELSE END sintaxis:

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

Esto funcionará con consultas más complejas que el ejemplo que nos está dando. Otra forma de hacerlo, si tiene varios valores posibles para el mismo campo que arrojarán la misma respuesta, sería

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

Sin embargo, esa no es la sintaxis correcta para obtener solo las filas con ciertas monedas; la respuesta anterior con

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

funcionaría mejor para eso.