개요
MSSQL Concat_WS 함수는 MSSQL 2017 ( 호환성 수준 140 ) 부터 사용할 수 있는 함수입니다. 여러 문자열들을 구분자를 이용해서 연결해주는 기능입니다.
호환성 확인 방법
구문
CONCAT_WS ( separator , argument1 , argument2 [ , argumentN ] ... )MSSQL Concat_ws 기본 예제
SELECT CONCAT_WS('.', 'A', 'B', 'C')결과는 아래와 같습니다.

테이블에서 읽기 예제
예제 테이블 내용

SELECT CONCAT_WS(',', NM_LVL1, NM_LVL2, NM_LVL3)
FROM #T_MENU결과는 아래와 같이 lvl3 의 null 값은 isnull 처리가 된 후에 연결됩니다.

2017 이전 버전에서는 ( 방법없음 )
2017 이전 버전에서 concat_ws 를 대체할만한 함수나 기능은 없습니다. 비슷한 함수가 String_agg 가 있지만 이 함수도 2017 버전부터 사용 가능하기때문에 별다른 대안이 없습니다.
파라미터 숫자가 고정되어있다면 사용자정의 함수를 만들어서 사용이 가능하겠지만, 숫자가 유동적이라면 방법이 없습니다.
그냥 concat 함수를 이용해서 직접 붙여야 합니다.
MSSQL 문자열 함수 26개 정리
MSSQL Concat_ws 함수 MS 문서 링크
예제 코드
IF OBJECT_ID('TEMPDB..#T_MENU') IS NOT NULL
DROP TABLE #T_MENU
GO
CREATE TABLE #T_MENU (
SEQ INT IDENTITY(1,1),
NM_LVL1 NVARCHAR(100),
NM_LVL2 NVARCHAR(100),
NM_LVL3 NVARCHAR(100)
)
GO
INSERT INTO #T_MENU VALUES ( '중식', '양장피', NULL)
INSERT INTO #T_MENU VALUES ( '중식', '크림새우', NULL )
INSERT INTO #T_MENU VALUES ( '한식', '식사', '김치찌개')
INSERT INTO #T_MENU VALUES ( '한식', '식사', '된장찌개')
INSERT INTO #T_MENU VALUES ( '한식', '식사', '칼국수')
INSERT INTO #T_MENU VALUES ( '한식', '안주', '아구찜')
INSERT INTO #T_MENU VALUES ( '한식', '안주', '닭도리탕')