Объявление переменной
Синтаксис команды (внутри квадратных скобок в описании синтаксиса располагаются необязательные элементы):
DECLARE @ИмяПеременной ТипДанных [ ,…n]
Пример объявления одной переменной:
DECLARE @sum int
Пример объявления нескольких переменных:
DECLARE @temp int, @count float
Присвоение значения
Синтаксис команды:
SET @ИмяПеременной = Выражение
Пример присвоения значения:
SET @sum = 0
В версии MS SQL Server 2008 появились следующие нововведения.
· Инициализировать переменную стало можно сразу при объявлении, например:
DECLARE @iCounter int = 0
· Появились операторы +=, –=, *=, /= для краткой формы записи арифметических конструкций.
Управляющие конструкции Transact-SQL
Группировка команд
Группировка двух и более команд в единый блок осуществляется с помощью конструкции:
BEGIN
...
END
Такая группировка используется в условных и циклических конструкциях.
Конструкция ветвления
Выполнение той или иной группы команд в зависимости от выполнения или не выполнения некоторого условия реализуется с помощью конструкции:
IF <условие>
Оператор
[ELSE
Оператор ]
При отсутствии команд, выполняемых при несоблюдении условия, ключевое слово ELSE можно не указывать.
Следует отметить особенность проверки значений на NULL (специальный маркер, обозначающий отсутствие информации). Вместо обычного сравнения: IF @myvar = NULL, следует использовать оператор IS: IF @myvar IS NULL.
Конструкция CASE
Аналогична оператору CASE в языках программирования. В MS SQL Server 2008 оператор CASE имеет два возможных варианта использования.
1. С входным выражением:
CASE <входное выражение>
WHEN <выражение when > THEN <результат>
[...]
[ELSE <результат>]
END
Пример:
SELECT TOP 10 SalesOrderID, SalesOrderID % 10 AS ‘Last Digit’, Position = CASE SalesOrderID % 10
WHEN 1 THEN ‘Один’
WHEN 2 THEN ‘Два’
WHEN 3 THEN ‘Три’
WHEN 4 THEN ‘Четыре’
ELSE ‘Другое’
END
FROM Sales.SalesOrderHeader;
Результат запроса представлен на рис. 3.1.
Рис. 3.1. Результат использования оператора CASE
2. Без входного выражения:
CASE
WHEN <логическое выражение> THEN <результат>
[...]
[ELSE <результат>]
END
Используется, как правило, для поиска.
Пример:
SELECT TOP 10 SalesOrderID % 10 AS 'OrderLastDigit',
ProductID % 10 AS 'ProductLastDigit',
"How Close?" = CASE
WHEN (SalesOrderID % 10) < 3 THEN 'Меньше трёх'
WHEN ProductID = 6 THEN 'ProductID равен 6'
WHEN ABS(SalesOrderID % 10 - ProductID) <= 1 THEN ' В пределах одного'
ELSE 'Больше одного'
END
FROM Sales.SalesOrderDetail
ORDER BY SalesOrderID DESC;
Результат выполнения запроса представлен на рис. 3.2.
Рис. 3.2. Результат использования оператора CASE
Дата добавления: 2021-04-21; просмотров: 110;