오라클에서는 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
'프로그래밍 > DBMS' 카테고리의 다른 글
MSSQL varchar 데이터 형식을 datetime 데이터 형식으로 변환하는 중 값 범위를 벗어났습니다. (0) | 2014.08.12 |
---|---|
MSSQL 누적합 구하기 (0) | 2014.07.15 |
MSSQL 피벗 사용하기 (0) | 2014.07.10 |
SQL 테이블 목록 확인 및 특정 컬럼 포함 테이블 보기 (0) | 2014.06.23 |
오라클, 중복 데이터 삭제하기 (0) | 2014.04.01 |
MSSQL 테이블 변경 시, "변경 내용을 저장할 수 없습니다.." 나올 때 (0) | 2014.03.12 |
MSSQL, 테이블 사용중인 프로시져 알아내기 (0) | 2013.12.18 |
MSSQL 플랜캐시 확인 쿼리 (2) | 2013.09.25 |