Почему инструменты Angular Resource Inline не работают?

CASE в MySQL является оператором и выражением , где каждое использование несколько отличается.

Как утверждение, CASE работает так же, как оператор switch, и полезен в хранимых процедурах, как показано в этом примере из документации (см. выше):

DELIMITER |

CREATE PROCEDURE p()
  BEGIN
    DECLARE v INT DEFAULT 1;

    CASE v
      WHEN 2 THEN SELECT v;
      WHEN 3 THEN SELECT 0;
      ELSE
        BEGIN -- Do other stuff
        END;
    END CASE;
  END;
  |

Однако в качестве выражения он может использоваться в статьях:

SELECT *
  FROM employees
  ORDER BY
    CASE title
      WHEN "President" THEN 1
      WHEN "Manager" THEN 2
      ELSE 3
    END, surname

Кроме того, как в качестве оператора, так и в качестве выражения, первый аргумент может быть опущен, и каждый WHEN должен принять условие.

SELECT *
  FROM employees
  ORDER BY
    CASE 
      WHEN title = "President" THEN 1
      WHEN title = "Manager" THEN 2
      ELSE 3
    END, surname

Я предоставил этот ответ потому что в другом ответе не упоминается, что CASE может функционировать как выражение, так и выражение. Основное различие между ними состоит в том, что форма оператора заканчивается на END CASE, а форма выражения заканчивается только END.

0
задан user3311613 13 July 2018 в 15:59
поделиться