Mysql
 sql >> база данни >  >> RDS >> Mysql

Изразяване на казус срещу изявление на казус

CASE изразът се оценява на стойност, т.е. той се използва за оценка на един от набор от резултати въз основа на някакво условие.
Пример:

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

CASE оператор изпълнява един от набор от оператори въз основа на някакво условие.
Пример:

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

Виждате колко си приличат, но твърдението не оценява до стойност и може да се използва самостоятелно, докато изразът трябва да бъде част от израз, напр. запитване или задание. Не можете да използвате израза в заявка, тъй като заявката не може да съдържа изрази, а само изрази, които трябва да бъдат оценени до нещо (самата заявка е изявление, в известен смисъл), напр. SELECT CASE WHEN condition THEN UPDATE table SET something; END CASE няма смисъл.




  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 заявка връща идентификатор на ресурс #8 вместо желаната стойност

  2. Създайте нова таблица, като изберете данни от други таблици с CREATE TABLE AS

  3. Дата и час срещу дата и час Mysql

  4. Актуализирайте с помощта на PDO израз

  5. Ръководство за използване на Sphinx с PHP и MySQL