CHOOSE: 나열된 값 중에서 지정한 위치의 값 반환 ... CHOOSE(NTILE(), , ,)
LTRIM, RTRIM, TRIM: 앞/뒤 공백 제거 -> 앞/뒤 특정 문자 제거 (2022+)
TRIM(LEADING '$# ' FROM @str1) TRIM(TRAILING '$# ' FROM @str1) TRIM(BOTH '$# ' FROM @str1)
TRY CONVERT: 변환 오류 시 NULL 반환
OFFSET ... FETCH: 몇번부터 몇번까지의 행을 불러오는 것 (ROW_NUMBER 보다 성능적으로도 우수)
OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY 5개 행을 건너뛰고 5개 행을 가져와
GREATEST, LEAST: 행 단위에서 가장 큰 값, 가장 작은 값 반환 (2022+)
STRING_AGG: 문자열 집계 (2017+)
STRING_SPLIT: 구분자가 있는 문자열을 행으로 분리 (2016+)
STRING_SPLIT: Ordinal 옵션 기능 추가 (2022+)
FROM STRING_SPLIT(@STR, '/', 1)
DATETRUNC: 지정한 위치까지 날짜와 시간 표시 (2022+)
IS DISTINCT FROM, IS NOT DISTINCT FROM: 상이한 값 또는 상이하지 않는 값 확인, 단 NULL을 포함하여 비교 가능 (2022+)
SELECT * FROM #TABLE WHERE COL1 IS DISTINCT FROM 50 다음 구문과 동일한 의미 WHERE ISNULL(COL1,0) <> 50
WINDOWS: OVER절에서 창 함수가 적용되기 전 행 집합의 분할 및 순서 결정 (2022+)
SELECT * , RANK() OVER win AS col1 , DENSE_RANK() OVER win AS col2 , NTILE(3) OVER win AS col3 FROM #TABLE WHERE 지역 = 'ANSAN' WINDOW win AS (PARTITION BY 성별 ORDER BY 포인트 DESC);
SELECT INTO ... ON: 파일그룹을 지정하여 저장
SELECT * INTO TABLE2 ON FILEGROUP1 FROM TABLE1