IT정보공유/DB

[ DB ] MSSQL 에서 쿼리 반복(query loop) 수행 예제

알지오™ 2016. 10. 19.

데이터베이스를 많이 사용하시는 분들에게 어쩌면 유용할지 모르겠네요.

MS SQL을 사용하면서 쿼리도 프로그래밍 처럼 for, while 등으로 반복을 시켜주면 좋겠다 싶을 때가 있습니다.

DB Query를 잘 모를때는 그냥 프로그래밍으로 해결하기도 했었으나, 

지금은 DB 에서도 쿼리문을 반복적으로 수행할 수 있다는 걸 알게 되어서 편리해졌습니다.

역시 사람은 배워야 합니다.

간단한 쿼리 반복 수행 샘플

DECLARE @LOOP_CNT INT;

SET @LOOP_CNT = 1;

WHILE @LOOP_CNT <= 5
begin

    select GETDATE()
    
	SET @LOOP_CNT = @LOOP_CNT + 1
end 

go    

 

위 SQL 문을 설명하자면, LOOP_CNT 라는 integer 형 변수를 선언하고, 

SET 을 이용해 LOOP_CNT 를 1로 초기화 해줍니다.

 

그리고 WHILE 구문을 통해 begin 부터 end 사이의 select getdate()를  LOOP_CNT가 5보다 작거나 같을 때까지 반복 수행합니다.

즉, 1부터 5까지니까 5번 수행하라는 거죠.

 

결과는 현재시간이 5번 찍힙니다. 

 

아참, 하나 빼먹었네요.

WHILE 구문 안에 SET 으로 LOOP_CNT에 1씩 더해서, 누적을 하여 5가 되면 루프를 빠져나올 수 있는 조건을 

만들어 주는 부분도 있어야죠.

 

굳이 설명이 필요할 것 같진 않은데 한번 풀이를 해봤습니다.

 

응용해서 필요하실때, 원하는 동작을 수행 시키시기 바랍니다.

댓글

💲 추천 글