SQL TABLE เป็น JSON โดยไม่มีข้อมูลคอลัมน์ SQL
Nov 26 2020
ฉันกำลังพยายามแยกวิเคราะห์ข้อมูลตารางเป็น JSON และในกระบวนการต้องการข้ามชื่อคอลัมน์ตารางในการแปลงโพสต์เป็น JSON ด้านล่างนี้คือตัวอย่าง Snippet
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_agg () สำหรับ sql2017 และใหม่กว่าหรือสำหรับพา ธ xml () สำหรับ sql2016)
select string_agg(concat('{"', string_escape(k1, 'json'), '":"', string_escape(v1, 'json'), '"}'), ',') /*within group (order by k1)*/
from @table1