sql >> Databáze >  >> RDS >> Mysql

Jednoduchý příkaz If Else v sql

Vypadá to, že se pokoušíte použít Excel IF(condition, true_response, false_response) syntax. Ekvivalentem v T-SQL je CASE WHEN THEN ELSE END syntaxe:

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

To bude fungovat se složitějšími dotazy než příklad, který nám uvádíte. Jiný způsob, jak to udělat, pokud máte několik možných hodnot pro stejné pole, které vrátí stejnou odpověď, by bylo

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

To však není správná syntaxe pro získání pouze řádků s určitými měnami; předchozí odpověď pomocí

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

nejlépe by to fungovalo.



  1. MySQL Vyberte dotaz, chcete-li skupiny x prvků vrátit v dávkách

  2. MySQL – PHP:Zobrazení výsledků v řádcích tabulky (5 výsledků na řádek)

  3. postgresql port zmatení 5433 nebo 5432?

  4. Základní správa Srovnání mezi Oracle, MSSQL, MySQL, PostgreSQL