You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用T-SQL将查询结果转换为JSON行集?SQL Server是否支持?

实现SQL Server每行返回单个JSON对象

当然可以做到这个需求!你只需要调整FOR JSON的参数,用WITHOUT_ARRAY_WRAPPER选项去掉外层的数组包裹,就能让每行生成独立的JSON对象。

针对你的测试数据,修改后的查询如下:

SELECT 
  (SELECT t.* FOR JSON PATH, WITHOUT_ARRAY_WRAPPER) AS JsonRow
FROM (
  VALUES 
    (1, 'foo1', CAST('1977-05-19' AS DATE), CAST(1 AS BIT), NULL),
    (2, 'foo2', CAST('1978-05-19' AS DATE), CAST(0 AS BIT), 'bar2'),
    (3, 'foo3', CAST('1979-05-19' AS DATE), NULL, 'bar3')
) t(Id, Foo, Day, Bool, Bar)

关键参数说明:

  • FOR JSON PATH:指定以列名作为JSON键的格式生成结果,适配你的数据结构;
  • WITHOUT_ARRAY_WRAPPER:去掉默认的外层数组括号,让每行输出单独的JSON对象,而非将所有对象包裹在一个数组中。

查询结果:

JsonRow
{"Id":1,"Foo":"foo1","Day":"1977-05-19","Bool":true}
{"Id":2,"Foo":"foo2","Day":"1978-05-19","Bool":false,"Bar":"bar2"}
{"Id":3,"Foo":"foo3","Day":"1979-05-19","Bar":"bar3"}

这样就完全符合你想要的每行对应一个JSON对象的需求啦!

内容的提问来源于stack exchange,提问作者vbilopav

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:03:39