Boh*_*dan 1 sql t-sql sql-server json
以下查询将整个表作为单个JSON字符串返回(JSON对象列表 - 每行一个):
SELECT * FROM MyTable FOR JSON AUTO
Run Code Online (Sandbox Code Playgroud)
我需要返回多行,其中每一行都是表格的一行的JSON字符串.
例如,如果表字段是A,B,C输出应该是:
{A: <value>, B: <value>, C: <value>}
{A: <value>, B: <value>, C: <value>}
{A: <value>, B: <value>, C: <value>}
...
{A: <value>, B: <value>, C: <value>}
Run Code Online (Sandbox Code Playgroud)
如何在TSQL中执行此操作?
虽然可以通过连接字符串手工构建JSON字符串,但我更愿意重用现有的工具来处理值中的引号等情况.
Jas*_*yrd 10
这将从select语句返回行中的json数据.
DECLARE @json NVARCHAR(Max)
SET @json = (SELECT * FROM [Sales].[Customers] FOR JSON PATH, ROOT('data'))
SELECT value
FROM OPENJSON(@json,'$.data');
Run Code Online (Sandbox Code Playgroud)
小智 5
万一其他人偶然发现了这一点。与@Waldemar 类似,但不需要在相关子查询中进行自联接:
SELECT (SELECT A, B, C FOR JSON PATH, WITHOUT_ARRAY_WRAPPER)
FROM MyTable
Run Code Online (Sandbox Code Playgroud)
A、B 和 C 列来自 FROM 中的“MyTable”,而不需要第二个引用和隐式自连接。
| 归档时间: |
|
| 查看次数: |
5332 次 |
| 最近记录: |