sql >> Databasteknik >  >> RDS >> Mysql

Enkel If Else-sats i sql

Det ser ut som om du försöker använda Excels IF(condition, true_response, false_response) syntax. Motsvarigheten i T-SQL är CASE WHEN THEN ELSE END syntax:

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

Detta kommer att fungera med mer komplexa frågor än exemplet du ger oss. Ett annat sätt att göra det, om du har ett antal möjliga värden för samma fält som kommer att returnera samma svar, skulle vara

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

Det är dock inte rätt syntax att använda för att få bara raderna med vissa valutor; det föregående svaret med

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

skulle fungera bäst för det.



  1. SQL lagrad procedur - variabel för kort

  2. Olika värden räknas i samma kolumn

  3. Hur man använder svar från en Jmeter JDBC-förfrågan i en HTTP-förfrågan

  4. hur kan jag ställa in data från databasen i kryssrutan med hjälp av formuläret i zend framework 1.11