sql >> Databasteknik >  >> RDS >> Mysql

Fallbeskrivning i MySQL

Ja, något sånt här:

SELECT
    id,
    action_heading,
    CASE
        WHEN action_type = 'Income' THEN action_amount
        ELSE NULL
    END AS income_amt,
    CASE
        WHEN action_type = 'Expense' THEN action_amount
        ELSE NULL
    END AS expense_amt

FROM tbl_transaction;

Som andra svar har påpekat har MySQL också IF() funktion för att göra detta med mindre utförlig syntax. Jag försöker i allmänhet undvika detta eftersom det är en MySQL-specifik tillägg till SQL som inte stöds generellt någon annanstans. CASE är standard SQL och är mycket mer portabel över olika databasmotorer, och jag föredrar att skriva portabla frågor så mycket som möjligt, endast genom att använda motorspecifika tillägg när det portabla alternativet är avsevärt långsammare eller mindre bekvämt.



  1. Få sista infognings-id efter en förberedd bilaga med PDO

  2. Hur returnerar jag slumptal som en kolumn i SQL Server 2005?

  3. Att ha grupp efter klausuler — elein's GeneralBits

  4. Hur man formaterar SQLite-resultat som en tabell