繁体   English   中英

将 SQL 表中的 JSON 值转换为多列

[英]Convert JSON value in SQL table to multiple columns

我的 SQL 表之一有以下格式的两列。 JSON 格式的“参数”列

价值 参数
999-99-9999 {"A":null,"B":"dfsnl","C":"dfdfs","D":"dsfdfs","E":"","F":"dfssdfsdfdsf", "G": null,"H":"dfdsf,dfssfddfsdsffds","I":"73834874378","J":null,"K":null}

我想知道列参数是否可以拆分为多列并希望实现以下格式

价值 一个 C D F G H Ĵ ķ
999-99-9999 dfsnl dfdfs dfdfs dfssdfsdfdsf dfdsf,dfssfddfsdsffds 73834874378

下面的查询似乎对我不起作用。 请帮忙?

SELECT t.Value, t.Parameters, P.* from MYTABLE t CROSS APPLY OPENJSON(Parameters) WITH ( A varchar(10), B varchar(10), C varchar(10), D varchar(10), E varchar(10), F varchar(10), G varchar(10), H varchar(10), I varchar(10), J varchar(10), K varchar(10) ) P;

使用openjson将 JSON 变成一组行和列。 默认情况下,这将为每个键/值对创建一行。 如果您想要一行包含命名列,请使用with并为其提供一个架构和 JSON 查询每一列。

将其与表cross apply以将 JSON 列与实际列组合。

SELECT value, a, b, c
FROM test
CROSS APPLY OPENJSON (parameters) with(
  a nvarchar(255) '$.A', b nvarchar(255) '$.B', c nvarchar(255) '$.C'
)

示范

有关更多信息,请参见openjson文档中的示例 3 和 4以及SQL 服务器中的 JSON 数据

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM