簡體   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