MSSQL Concat_WS 함수

개요

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 처리가 된 후에 연결됩니다.

mssql concat_ws 실행 결과

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 ( '한식', '안주', '닭도리탕')

Comments

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

답글 남기기

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