【问题标题】:Open Json a Json field in SQL Server to table [closed]在SQL Server中打开Json一个Json字段到表[关闭]
【发布时间】:2021-08-29 10:16:04
【问题描述】:
我在 SQL Server 中有一个表,其中一行包含一个 Json 列 - 如下所示:
| ResponseText |
RequestId |
| {"LosUnqCod":0,"LosMidId":23} |
96173722 |
| {"LosUnqCod":1,"LosMidId":5} |
96173721 |
我想要一张这种形状的桌子:
| LosUnqCod |
LosMidId |
RequestId |
| 0 |
23 |
96173722 |
| 1 |
5 |
96173721 |
如何打开这个json?
【问题讨论】:
-
Edit 问题并展示您已经尝试过的内容。解释失败的原因/位置。具体(错误消息、意外结果等)。
标签:
json
sql-server
tsql
primary-key
open-json
【解决方案1】:
如果每个 SQL 行只有一个 JSON 对象(不是数组),则不必使用 OPENJSON,您可以改用 JSON_VALUE:
SELECT
JSON_VALUE(a.responsetext, '$.LosUnqCod') LosUnqCod,
JSON_VALUE(a.responsetext, '$.LosMidId') LosMidId,
a.RequestId
FROM [dbo].[a];
【解决方案2】:
大家好,我找到了我的答案,想与和我有同样问题的人分享
SELECT
reqTbl.LosUnqCod ,
a.RequestId
FROM [dbo].[a] CROSS APPLY
OPENJSON( dbo.a.responsetext)
WITH (
LosUnqCod nvarchar(50)
) AS reqTbl