개요
MSSQL Split 기능은 String_split 함수를 이용해서 구현할 수 있습니다. Split 결과는 테이블로 반환됩니다.
구문
STRING_SPLIT ( string , separator [ , enable_ordinal ] )
MSSQL Split 기본 예제
SELECT *
FROM string_split('10.20.30.40.50', '.')

결과는 그림과 같습니다. 결과는 테이블로 나옵니다.
SPLIT 두번째, 세번째 등 예제
STRING_SPLIT 함수 세 번째 인수가 옵션인데, 1과 0이 들어갈 수 있습니다. 1을 주면 순서컬럼이 표시됩니다.
그래서 WHERE 절에 ordinal 컬럼을 조건으로 주면 특정한 INDEX 의 값을 찾을 수 있습니다.
SELECT *
FROM STRING_SPLIT('10.20.30.40.50', '.', 1)

SPLIT 마지막 값 찾기 예제
Ordinal 컬럼을 조건으로 주되, 주어진 문자열에서 구분자가 몇 번 들어갔는지를 구해서 + 1을 해주면 마지막 index 의 값을 찾을 수 있습니다.
SELECT *
FROM string_split('10.20.30.40.50', '.', 1)
WHERE ORDINAL = LEN('10.20.30.40.50') - LEN(REPLACE('10.20.30.40.50','.','')) +1

SPLIT Table 이용하기
결과를 테이블로 이용하려면 아래와 같이 WITH 절을 사용하거나, 테이블 변수를 사용하는 방법이 간단합니다.
WITH T AS (
SELECT *
FROM string_split('10.20.30.40.50', '.', 1)
)
SELECT * FROM T
-------------------------------------------------------
DECLARE @T TABLE (
VAL VARCHAR(10)
, ORD INT
)
INSERT INTO @T ( VAL, ORD )
SELECT VALUE, ORDINAL
FROM string_split('10.20.30.40.50', '.', 1)
SELECT * FROM @T
MSSQL 문자열함수 26개 정리 바로가기
MSSQL String_Split 함수 MS 문서 링크