![](/img/trans.png)
[英]Convert multiple SQL columns in a row to JSON and update to a column in the same row
[英]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.