使用OPENJSON(Transact-SQL)进行SQL JSON解析

smtd7mpg  于 2022-12-15  发布在  其他
关注(0)|答案(1)|浏览(103)
DECLARE @json NVARCHAR(max)  = N'[
  {
    "p1": {
      "name": "mike",
      "age": 34,
      "address": "berlin"
    },
    "p2": {
      "name": "david",
      "age": 45,
      "address": "munich"
    },
    "p3": {
      "name": "rachel",
      "age": 15,
      "address": "frankfurt"
    }
  }
]'

我需要使用SQL查询(SQL服务器)将上述JSON解析为如下表。请帮助!
| 姓名|年龄|地址|
| - ------|- ------|- ------|
| 传声器|三十四|柏林|
| 大卫|四十五|慕尼黑|
| 雷切尔|十五|法兰克福|

ddrv8njm

ddrv8njm1#

如果JSON内容具有此固定结构(具有单个元素的JSON数组),则两个OPENJSON()调用和一个附加APPLY运算符的组合将返回预期结果:

SELECT j2.*
FROM OPENJSON(@json, '$[0]') j1
CROSS APPLY OPENJSON(j1.[value]) WITH (
   name nvarchar(100),
   age int,
   address nvarchar(100)
) j2

相关问题