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

Wyrażenie przypadku a oświadczenie o sprawie

CASE wyrażenie ewaluuje do wartości, tj. jest używane do ewaluacji do jednego ze zbioru wyników, na podstawie pewnego warunku.
Przykład:

SELECT CASE
    WHEN type = 1 THEN 'foo'
    WHEN type = 2 THEN 'bar'
    ELSE 'baz'
END AS name_for_numeric_type
FROM sometable`

CASE instrukcja wykonuje jedną z zestawu instrukcji na podstawie pewnego warunku.
Przykład:

CASE
    WHEN action = 'update' THEN
        UPDATE sometable SET column = value WHERE condition;
    WHEN action = 'create' THEN
        INSERT INTO sometable (column) VALUES (value);
END CASE

Widzisz, że są do siebie podobne, ale stwierdzenie nie ewaluować do wartości i może być używany samodzielnie, podczas gdy wyrażenie musi być częścią wyrażenia, np. zapytanie lub zadanie. Nie możesz użyć instrukcji w zapytaniu, ponieważ zapytanie nie może zawierać instrukcji, a jedynie wyrażenia, które mają do czegoś ewaluować (samo zapytanie jest w pewnym sensie instrukcją), np. SELECT CASE WHEN condition THEN UPDATE table SET something; END CASE nie ma sensu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql - Zapobieganie zduplikowanym wpisom połączonych kolumn za pomocą unikalnego indeksu

  2. Jak zdobyć Sumę z dwóch stołów?

  3. Jak zaokrąglić DateTime w MySQL?

  4. Nie można użyć połączenia MySQL dla struktury encji 6

  5. Policz wystąpienia znaku w ciągu za pomocą MySQL