728x90
반응형
프로시저를 작성하다 보면 동적으로 SQL 문을 만들어야 하는 경우가 있습니다. 이럴 때 사용되는 반복문인 while을 실습하면서 이해해 보겠습니다.
MSSQL 반복문 WHILE 사용 방법
WHILE 조건
BEGIN
처리1
CONTINUE; -- CONTINUE를 만나면 WHILE의 시작으로 갑니다.
처리2
BREAK; -- WHILE문 빠져 나오기
END
WHILE 문 사용 방법입니다.
CONTINUE를 만나면 WHILE의 시작으로 가서 조건을 다시 확인합니다.
BREAK를 만나면 WHILE 문을 종료합니다.
WHILE문 순서도
WHILE 문을 순서도(Flow Chart)로 그려보았습니다.
위 그림의 7번에서 I가 3이어서 3 < 3은 거짓이므로 WHILE문을 빠져나가 8번으로 가게 됩니다.
연두색으로 표시한 부분이 프로그램이 실행되는 순서이니 확인해 보시기 바랍니다.
-- 시작
DECLARE -- 변수 선언
@i SMALLINT;
SET @i = 1;
WHILE @i < 3
BEGIN
SELECT '♡'
SET @i = @i + 1; -- SET @i += 1;
END
-- 종료
위 순서도의 내용을 SQL 문으로 옮겨보았습니다.
♡(하트)가 두 번 출력됩니다.
WHILE 문에서 CONTINUE, BREAK 사용 예제
DECLARE -- 변수 선언
@i SMALLINT;
SET @i = 1;
WHILE @i <= 10
BEGIN
IF @i = 3
BEGIN
SET @i = @i + 1;
CONTINUE;
END
IF @i = 7
BREAK;
IF @i % 2 = 0 -- 2로 나눈 나머지가 0인가?
BEGIN
SELECT @i
END
ELSE
BEGIN
SELECT '♡'
END
SET @i = @i + 1;
END
@i를 1부터 10까지 반복하며 홀수일 때는 ♡를 출력하고 짝수일 때는 짝수를 출력하였습니다.
그리고 @i가 3일 때는 CONTINUE를 사용하여 아래 내용을 패스하였고요.
@i가 7일 때는 BREAK를 사용하여 WHILE을 종료하였습니다.
WHILE을 사용하여 동적 SQL 문 작성
DECLARE -- 변수 선언
@sql NVARCHAR(MAX)
, @i SMALLINT;
SET @i = 1;
SET @sql = '
SELECT ';
WHILE @i <= 10
BEGIN
IF @i = 1
SET @sql += 'COL' + CONVERT(VARCHAR, @i)
ELSE
SET @sql += ', COL' + CONVERT(VARCHAR, @i)
SET @i = @i + 1;
END
SET @sql += '
FROM DUAL
'
PRINT @sql
WHILE문 안에 동적으로 쿼리문을 작성해서 사용해 볼 수 있겠습니다.
마무리
MSSQL에서 반복문인 WHILE 문에 대해 이해해 보고 실습해 보았습니다. 다른 프로그래밍 언어와 사용 방법이 비슷한 거 같아요.
이상 마치겠습니다.
728x90
반응형
'MSSQL' 카테고리의 다른 글
[MSSQL] 테이블 정보 확인 방법 (0) | 2024.07.20 |
---|---|
[MSSQL] 테이블 생성(CREATE TABLE) 방법 (0) | 2024.07.15 |
[MSSQL] 프로시저 (Procedure) IF, ELSE, ELSEIF 분기 처리 (0) | 2024.07.10 |
[MSSQL] 데이터 타입 DECIMAL, NUMERIC 실습 (0) | 2024.07.09 |
[MSSQL] 숫자형 데이터 타입 smallmoney 실습 (0) | 2024.07.08 |