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

Simpel If Else-sætning i sql

Det ser ud som om du forsøger at bruge Excels IF(condition, true_response, false_response) syntaks. Det tilsvarende i T-SQL er CASE WHEN THEN ELSE END syntaks:

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

Dette vil fungere med mere komplekse forespørgsler end det eksempel, du giver os. En anden måde at gøre det på, hvis du har et antal mulige værdier for det samme felt, som vil returnere det samme svar, ville være

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

Det er dog ikke den rigtige syntaks at bruge til kun at få rækkerne med bestemte valutaer; det forrige svar med

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

ville fungere bedst til det.



  1. Automatiser versionsnummer-hentning fra .Dtsx-filer

  2. Hvordan afkorter man en tabel ved hjælp af Doctrine?

  3. MySQL:vælg dato for den aktuelle uges mandag

  4. hvordan man kontrollerer, om en streng ser tilfældig ud, eller menneskeskabt og udtalelig?