Управляющие конструкции Transact-SQL
Их весьма мало. К ним относятся:
1) Блок BEGIN … END. Выполняет группировку двух и более TSQL команд. Используется в конструкциях ветвлений, условий и циклов. Допускаются вложенные друг в друга блоки.
2) Конструкция IF … ELSE. Переход по условию. Допускается в каждой ветви исполнять одну команду или использовать блок BEGIN…END. Пример:
PRINT GetDate()
IF Day(GetDate())=1 AND Month(GetDate())=1
BEGIN
PRINT 'Сегодня Новый Год!'
IF CURRENT_USER='dbo'
PRINT 'Администратор СУБД - это судьба...'
END
ELSE PRINT 'Сегодня точно не Новый Год.'
3) Конструкция CASE … END. Реализует множественное ветвление. Особенностью конструкции является то, что её можно использовать непосредственно в выражениях, например, при выполнении запроса. Пример:
SELECT au_lname, au_fname,
CASE state
WHEN ‘CA’ THEN ‘Калифорния’
WHEN ‘UT’ THEN ‘Юта’
ELSE state
END
FROM authors
WHERE au_lname LIKE ’O%’
4) Конструкция COALESCE возвращает первое значение, не равное NULL, из перечня аргументов функции. Пример:
DECLARE @I1 int, @C1 char, @C2 char, @C3 char
SET @I1 = 10
SET @C1 = 'A'
SET @C2 = @C1 + @C3
PRINT COALESCE(@C2,@I1)
Так как конкатенацией любой строки со значением NULL является NULL, то результатом выполнения этой последовательности команд будет значение 10.
5) Конструкция WHILE… . Организует циклы в TSQL. Это единственный способ организовать циклы в этом языке. Цикл можно принудительно остановить, если в его теле выполнить команду BREAK, и перезапустить из любого места внутри тела цикла с помощью команды CONTINUE.
DECLARE @I1 int
SET @I1 = 1
WHILE @I1 < 8
BEGIN
PRINT 'Квадрат числа '+Str(@I1)+' есть '+Str(Square(@I1))
SET @I1 = @I1 + 1
END
Дата добавления: 2015-07-30; просмотров: 1310;