SQL JSON、임시테이블 만드는법

최현우·2023년 1월 24일
0

simple Tip(ASP.NET)

목록 보기
11/31
post-thumbnail

DECLARE @table TABLE(
aaaa(컬럼명) tinyint(컬럼타입),
bbb,
ccc
)

INSERT INTO @table (aaa, bbb, ccc)
SELECT DISTINCT aaa, bbb, ccc FROM table

SELECT DISTINCT A.aaa, A.bbb
FROM @table A

JOIN (

SELECT DISTINCT
BusinessDT
, '[' + STUFF((SELECT DISTINCT ',' + CONVERT(NVARCHAR, bbb)
FROM @table
WHERE aaa = Z.aaa
FOR XML PATH('')), 1, 1, '') + ']' bbb
FROM @table Z

) B ON A.aaa = B.aaa

WHERE 조건

위의 예제는 다른 테이블에서 조인을 이용하여 컬럼값을 합쳐 새로운 테이블에 저장하는 방법이다.

다소 복잡해 보이지만 하나하나 보면 이해할 수 있다.

table을 위에 선언해주고 안에 컬럼을 만든다. create하는것과 같다.

후에 선언한 테이블안에 컬럼을 집어넣고, 조인할 테이블을 추가해준다. 조건을 집어넣어 원하는 값을 가져온다.

문자열을 합칠때 STUFF와 XML이 있는데

STUFF() 함수는 문자열을 자리수 만큼 특정문자로 치환하고 문자열로 리턴한다.

STUFF("문자열", "시작위치", "문자길이", "치환문자")의 문법을 따른다.

XML로 리턴된 결과의 첫번재 문자 ','을 빈문자로 치환하고 문자열로 변환한다.

profile
세상에서 가장 귀여운건 == 윤호 ? True : False 언제나 True❤️

0개의 댓글