如何将逗号附加到SQL Server中除最后一行以外的列?



考虑我有以下表格:

select * from myTable

返回以下结果

<表类>Col1Col2tbody><<tr>1FirstValue2SecondValue3ThirdValue

不清楚为什么要将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列排序以获得正确的顺序

最新更新