반응형
테이블 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
반응형
'MSSQL' 카테고리의 다른 글
[MSSQL] While문으로 일별, 시간별 저장프로시저(집계) 실행 (0) | 2021.12.07 |
---|---|
[MSSQL] 날짜 형식 변환(CONVERT, DATETIME) (0) | 2021.12.07 |