Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Instrukcja przypadku w MySQL

Tak, coś takiego:

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;

Jak wskazały inne odpowiedzi, MySQL ma również funkcję IF() funkcja, aby to zrobić przy użyciu mniej pełnej składni. Generalnie staram się tego unikać, ponieważ jest to specyficzne dla MySQL rozszerzenie SQL, które nie jest ogólnie obsługiwane gdzie indziej. CASE jest standardowym SQL i jest znacznie bardziej przenośny w różnych silnikach baz danych, a ja wolę pisać przenośne zapytania tak często, jak to możliwe, używając tylko rozszerzeń specyficznych dla silnika, gdy przenośna alternatywa jest znacznie wolniej lub mniej wygodnie.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli_stmt::bind_param():Liczba elementów w ciągu definicji typu nie odpowiada liczbie zmiennych wiązania

  2. Skuteczne strategie tworzenia kopii zapasowych i odzyskiwania danych MySQL/MariaDB

  3. Jak napisać instrukcję IF ELSE w zapytaniu MySQL?

  4. Jak wyświetlić wiersze nieobecne w innej tabeli w MySQL?

  5. MySQL ERROR 1045 (28000):Odmowa dostępu dla użytkownika 'bill'@'localhost' (przy użyciu hasła:TAK)