首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在TSQL查询中将行转换为JSON?

如何在TSQL查询中将行转换为JSON?
EN

Stack Overflow用户
提问于 2017-10-18 02:27:26
回答 5查看 17.3K关注 0票数 10

下面的查询以单个JSON字符串的形式返回整个表( JSON对象列表-每一行一个):

代码语言:javascript
运行
复制
SELECT * FROM MyTable FOR JSON AUTO 

我需要返回多行,其中每一行将是表的一个信号行的JSON字符串。

例如,如果表字段是A、B、C输出,则应该是:

代码语言:javascript
运行
复制
{A: <value>, B: <value>, C: <value>}
{A: <value>, B: <value>, C: <value>}
{A: <value>, B: <value>, C: <value>}
...
{A: <value>, B: <value>, C: <value>}

如何在TSQL ?中做到这一点

虽然可以通过连接字符串手工构造JSON字符串,但我更倾向于重用现有工具,该工具可以处理像值中的引号这样的情况。

EN

回答 5

Stack Overflow用户

发布于 2017-10-18 04:02:49

这将从select语句中逐行返回json数据。

代码语言:javascript
运行
复制
DECLARE @json NVARCHAR(Max)
SET @json = (SELECT * FROM [Sales].[Customers] FOR JSON PATH, ROOT('data'))
SELECT value
FROM OPENJSON(@json,'$.data');
票数 24
EN

Stack Overflow用户

发布于 2019-11-13 01:25:02

以防其他人在这件事上绊倒。类似于@Waldemar,但在相关子查询中不需要自连接:

代码语言:javascript
运行
复制
SELECT (SELECT A, B, C FOR JSON PATH, WITHOUT_ARRAY_WRAPPER)
FROM MyTable

列A、B和C来自FROM中的"MyTable“,而不需要第二个引用和隐式自联接。

票数 6
EN

Stack Overflow用户

发布于 2020-11-28 13:05:01

可以将记录转换为JSON对象,如下所示:

代码语言:javascript
运行
复制
SELECT * 
FROM MyTable  
FOR JSON PATH, WITHOUT_ARRAY_WRAPPER
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46801908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档