考虑我有以下表格:
select * from myTable
返回以下结果
<表类>Col1 Col2 tbody><<tr>1 FirstValue 2SecondValue 3 ThirdValue 表类>
不清楚为什么要将JSON数据放在单独的行上,但您可以使用以下代码:
SELECT Json
FROM (
SELECT 1 AS Ordering, '[' AS Json
UNION ALL
SELECT
2,
(SELECT Col1, Col2
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER)
+ CASE WHEN LEAD(Col1) OVER (ORDER BY (SELECT NULL)) IS NULL THEN N'' ELSE N',' END
FROM myTable
UNION ALL
SELECT 3, ']' Json
) ORDER BY Ordering
步骤如下:
- 构建
[]
括号和JSON的联合 - JSON使用关联子查询构建,每行返回一个JSON对象。
- 如果下一行不为空,请添加逗号
- 按
ordering
列排序以获得正确的顺序