MSSQL GENERATE_SERIES

개요

MSSQL GENERATE_SERIES 는 일련의 숫자를 지정된 간격으로 생성하되, 계열 값 사이의 간격과 단계는 사용자가 정의할 수 있는 연산자입니다. 호환성수준 160 즉 SQL Server 2022 버전부터 사용가능합니다.
그 이전버전에서는 master..spt_values 를 비슷하게 활용할 수 있는데, 최대 2047까지만 사용할 수 있어서, 2022 버전을 쓴다면 Generate_series 를 사용하는 것이 편하다

MSSQL Generate_series 기본 구문

GENERATE_SERIES ( start , stop [ , step ] )

기본 예제

-- 1씩 증가 ( 1은 기본값임. 생략가능 )
SELECT * FROM generate_series(1, 10)

-- 0.1 씩 증가 ( 인수들이 모두 같은 형식이어야 함)
SELECT * FROM generate_series(1.0, 2.0, 0.2)

-- 1씩 감소
SELECT * FROM generate_series(10, 1, -1)
MSSQL GENERATE_SERIES 기본 예제 결과

달력 만들기 예제

-- 2024.01.01 ~ 2024.12.31
SELECT MM, [1], [2], [3], [4], [5], [6], [7]
FROM (
	SELECT DATEPART(WEEKDAY, DT) AS WD
		, DATEPART(WEEK, DT) AS WD2
		, DATEPART(MONTH, DT ) AS MM -- 월별 구분 기능
		, DATEPART(DAY,DT) AS DT
	FROM (
		SELECT DATEADD(DAY, VALUE, '2024-01-01') AS DT
		FROM generate_series(0, DATEDIFF(DAY, '2024-01-01', '2024-12-31'))
		) X
	) A
PIVOT (
	MAX(DT) FOR WD IN ( [1], [2], [3], [4], [5], [6], [7])
	) P
MSSQL GENERATE_SERIES 를 이용해서 달력만들기 결과

MSSQL 문자열 함수 26개 정리 바로가기
MSSQL GENERATE_SERIES MS 문서 바로가기

Comments

No comments yet. Why don’t you start the discussion?

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다