В этом руководстве вы узнаете, как использовать оператор SQL Server WHILE для многократного выполнения блока операторов в зависимости от указанного условия.
Обзор оператора WHILE
Оператор WHILE — это оператор управления потоком, который позволяет многократно выполнять блок операторов до тех пор, пока указанное условие имеет значение TRUE.
Ниже показан синтаксис оператора WHILE:
WHILE Boolean_expression { sql_statement | statement_block}
В этом синтаксисе:
Во-первых, Boolean_expression — это выражение, которое принимает значение ИСТИНА или ЛОЖЬ.
Во-вторых, sql_statement | statement_block — это любой оператор Transact-SQL или набор операторов Transact-SQL. Блок операторов определяется с помощью оператора BEGIN…END.
Если при входе в цикл логическое_выражение принимает значение ЛОЖЬ, то ни один оператор внутри цикла WHILE не будет выполнен.
Внутри цикла WHILE необходимо изменить некоторые переменные, чтобы Boolean_expression возвращал FALSE в некоторых точках. В противном случае у вас будет неопределенный цикл.
Обратите внимание: если Boolean_expression содержит оператор SELECT, его необходимо заключить в скобки.
Чтобы немедленно выйти из текущей итерации цикла, используйте оператор BREAK. Чтобы пропустить текущую итерацию цикла и начать новую, используйте оператор CONTINUE.
Пример SQL Server WHILE
Давайте рассмотрим пример использования оператора SQL Server WHILE, чтобы лучше его понять.
Следующий пример иллюстрирует, как использовать оператор WHILE для вывода чисел от 1 до 5:
DECLARE @counter INT = 1; WHILE @counter <= 5 BEGIN PRINT @counter; SET @counter = @counter + 1; END
Выход:
1 2 3 4 5
В этом примере:
- Сначала мы объявили переменную @counter и установили ее значение равным единице.
- Затем в условии оператора WHILE мы проверяли, меньше ли @counter или равно ли ему пять. Если нет, мы выводили @counter и увеличивали его значение на единицу. После пяти итераций @counter становился равным 6, что приводило к тому, что условие предложения WHILE оценивалось как FALSE, цикл останавливался.
Чтобы узнать, как использовать цикл WHILE для обработки строк за строкой, ознакомьтесь с руководством по курсору.
В этом руководстве вы узнали, как использовать оператор SQL Server WHILE для повторения выполнения блока операторов на основе указанного условия.