SQL 열 정보가없는 SQL TABLE to JSON
Nov 26 2020
테이블 데이터를 JSON으로 구문 분석하려고하는데 그 과정에서 JSON으로의 포스트 변환에서 테이블 열 이름을 건너 뛰고 싶습니다. 아래는 샘플 스 니펫입니다.
DECLARE @table1 TABLE (k1 nvarchar(max), v1 nvarchar(max))
-- Note k1 is unique
INSERT INTO @table1 (k1,v1) VALUES( 'Apple', 'One')
INSERT INTO @table1 (k1,v1) VALUES( 'Banana', 'Two')
INSERT INTO @table1 (k1,v1) VALUES( 'Orange', 'Three')
SELECT k1, v1 FROM @table1
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
--output: {"k1":"Apple","v1":"One"},{"k1":"Banana","v1":"Two"},{"k1":"Orange","v1":"Three"}
-- Expected: {"Apple","One"},{"Banana","Two"},{"Orange","Three"}
방향에 감사드립니다!
답변
1 lptr Nov 27 2020 at 12:51
--string concatenation & aggregation (sql2017 & later의 경우 string_agg () 또는 sql2016의 경우 xml path ())
select string_agg(concat('{"', string_escape(k1, 'json'), '":"', string_escape(v1, 'json'), '"}'), ',') /*within group (order by k1)*/
from @table1