본문 바로가기

MSSQL

[MSSQL] 테이블 ROW수 만큼 WHILE문 실행 예제

반응형

테이블 ROW 수 만큼 WHILE문 돌리기

동적 쿼리를 작성하다보면 테이블 ROW 별로 작업해야하는 경우가 있다.

 

 

[WHILE문으로 확인 할 예제 테이블]

 

-- 예제 테이블 생성
CREATE TABLE [dbo].[TMP_TABLE](
	[SEQ] [int] IDENTITY(1,1) NOT NULL,
	[TEXT] [nvarchar](255) NOT NULL,
)

-- 예제 데이터 삽입
INSERT INTO [TMP_TABLE] (TEXT) VALUES(N'홍길동')
INSERT INTO [TMP_TABLE] (TEXT) VALUES(N'이정웅')
INSERT INTO [TMP_TABLE] (TEXT) VALUES(N'박정수')
INSERT INTO [TMP_TABLE] (TEXT) VALUES(N'이광수')
INSERT INTO [TMP_TABLE] (TEXT) VALUES(N'김영식')
INSERT INTO [TMP_TABLE] (TEXT) VALUES(N'이성훈')
INSERT INTO [TMP_TABLE] (TEXT) VALUES(N'김정훈')
INSERT INTO [TMP_TABLE] (TEXT) VALUES(N'이지훈')
INSERT INTO [TMP_TABLE] (TEXT) VALUES(N'김준호')
INSERT INTO [TMP_TABLE] (TEXT) VALUES(N'이예준')
INSERT INTO [TMP_TABLE] (TEXT) VALUES(N'최우진')

 

[예제 테이블 데이터 확인]

 

예제 테이블

 

[예제 테이블 ROW 수 만큼 WHILE문 실행]

 

DECLARE @i INT
DECLARE @Max INT
DECLARE @TEXT [nvarchar](255)

SELECT	@i = MIN(SEQ) ,@max = MAX(SEQ)
FROM	TMP_TABLE

WHILE(@i <= @MAX)
	BEGIN
		SELECT	@TEXT = [TEXT]
		FROM	TMP_TABLE
		WHERE	SEQ = @i

		-- 로직 목표에 따라 응용
		SELECT @TEXT

		-- @i 증가
		SELECT @i=@i+1
	END
반응형