loading..
Русский    English
20:16
листать

Оператор CASE стр. 4

Начиная с версии  2012, в  Cистема управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL Server появилась функция IIF, хорошо известная тем, кто использует VBA. Эта функция является альтернативой выражению CASE в MS Access и имеет следующий синтаксис:

  1. IIF(<условие>, <выражение, если условие истинно>, <выражение, если условие не истинно>)

Функция возвращает результат вычисления выражения из второго аргумента, если условие есть TRUE; в противном случае возвращается результат вычисления выражения из третьего аргумента. Таким образом, функция

  1. IIF(condition, expression_1, expression_2)
эквивалентна следующему выражению CASE:

  1.    CASE WHEN condition THEN expression_1 ELSE expression_2 END

С помощью функции IIF мы можем переписать решение первой задачи следующим образом:

Консоль
Выполнить
  1. SELECT DISTINCT product.model,
  2.     IIF(price IS NULL, N'Нет в наличии',CAST(price AS CHAR(20))) price
  3.     FROM Product LEFT JOIN
  4.     PC ON Product.model = PC.model
  5.     WHERE product.type = 'PC';

    В том случае, если вариантов ветвления больше двух, можно использовать вложенные функции IIF. Например, для решения задачи 5.10.1 можно использовать такой запрос:

Консоль
Выполнить
  1. SELECT DISTINCT model, price,
  2.     IIF(price=(SELECT MAX(price) FROM PC),N'Самый дорогой',
  3.         IIF(price=(SELECT MIN(price) FROM PC), N'Самый дешевый',N'Средняя цена')) comment
  4.     FROM PC
  5.     ORDER BY price;

    Если так и дальше пойдет, то скоро в  T-SQL (Transact-SQL) — процедурное расширение языка SQL, используемое для программирования на стороне сервера в Microsoft SQL Server и Sybase ASE.T-SQL появится оператор SWITCH. :-)

Страницы: 1 2 3 4
Тэги:
ALL AND AUTO_INCREMENT AVG battles CASE CAST CHAR CHARINDEX CHECK classes COALESCE CONSTRAINT Convert COUNT CROSS APPLY CTE DATEADD DATEDIFF DATENAME DATEPART DATETIME DDL DEFAULT DELETE DISTINCT DML EXCEPT EXISTS EXTRACT FOREIGN KEY FROM FULL JOIN GROUP BY Guadalcanal HAVING IDENTITY IN INFORMATION_SCHEMA INNER JOIN insert INTERSECT IS NOT NULL IS NULL ISNULL laptop LEFT LEFT OUTER JOIN LEN maker Больше тэгов
Учебник обновлялся
несколько дней назад
мани . Дальномер лазерный: изготовление своими руками
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.