Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Simples instrução If Else em sql


Parece que você está tentando usar o IF(condition, true_response, false_response) do Excel sintaxe. O equivalente em T-SQL é o CASE WHEN THEN ELSE END sintaxe:
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

Isso funcionará com consultas mais complexas do que o exemplo que você está nos dando. Outra maneira de fazer isso, se você tiver vários valores possíveis para o mesmo campo que retornarão a mesma resposta, seria
SELECT 
    CASE 
        WHEN CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY IN ('USD','EUR') THEN 1
        ELSE 0
    END 
FROM 
    CONTRACTS_IN_DIFFERENT_CURRENCIES

No entanto, essa não é a sintaxe correta a ser usada para obter apenas as linhas com determinadas moedas; a resposta anterior com
SELECT *     
FROM 
    CONTRACTS_IN_DIFFERENT_CURRENCIES
WHERE 
    CONTRACTS_IN_DIFFERENT_CURRENCIES.CURRENCY IN ('USD','EUR') 

funcionaria melhor para isso.