![](/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.