본문 바로가기
프로그래밍/DBMS

MSSQL 1~100 까지 더미 테이블 생성하고 싶을 때

by zoo10 2014. 6. 9.

오라클에서는 1~100까지 더미 테이블을 생성할 때 아래 같이 한다.


SELECT LEVEL FROM DUAL CONNECT BY LEVEL <= 100;


MSSQL은 좀더 복잡하다.

WITH    q AS
        (
        SELECT  1 AS num
        UNION ALL
        SELECT  num + 1
        FROM    q
        WHERE   num <= 100
        )
SELECT  *
FROM    q option(maxrecursion 0) -- option 힌트는 100개 이상 반복시 필요하다. 재귀호출 기본값이 100임
 


WITH문이 지원되야 하기 때문에 SQL 2005 부터 지원되겠다.


오라클처럼 좀 간단하게 되었으면 좋겠지만..

100 같은 큰 숫자가 아니라면 UNION ALL로 노가다로 묶어도 된다.


참조 : http://stackoverflow.com/questions/1475973/sql-select-to-get-the-first-n-positive-integers