transact sql

Оператор CASE в Transact SQL

Оператор CASE используется внутри запроса (что удобно). Его можно использовать двумя способами:

--первый способ, CASE формирует столбец
SELECT ProductName, CategoryID, Price
  CASE CategoryID
    WHEN 1 THEN Price*2
    WHEN 2 THEN Price*3
    WHEN 3 THEN Price*4
    ELSE Price
  END
FROM Products
--второй способ
 SELECT ProductName, CategoryID, Price
   CASE CategoryID
     WHEN CategoryID=1 THEN Price*2
     WHEN CategoryID=2 THEN Price*3
     WHEN CategoryID=40 THEN Price*4
     ELSE Price
   END
FROM Products

Второй способ более гибкий, т.е. для анализа можно использовать разные столбцы или переменные.

Использование CASE удобно тем, что наш select остается отделенным, а конструкция внутри него — case — формирует отдельный столбец.




Добавить комментарий

Ваш e-mail не будет опубликован.