小编VIR*_*ESH的帖子

读取 JSON 数组作为 SQL 表列之一

我正在尝试将 json 数组读入表中,数组中的节点(语言)之一本身就是一个数组,我正在获取null这个特定的列(语言)。

下面是示例 json:

DECLARE @json NVARCHAR(MAX) = '[
  {
     "Id":1,
     "Name":"Test1",
     "Languages":["L1", "L2"]
  },
  {
     "Id":2,
     "Name":"Test2",
     "Languages":["L3", "L4"]
  },
  {
     "Id":3,
     "Name":"Test2",
     "Languages":["L5", "L6"]
  }]'
Run Code Online (Sandbox Code Playgroud)

以下是我正在使用的查询:

SELECT Id
     , Name 
     , Languages
  FROM OPENJSON(@json)
  WITH (Id INT '$.Id'
     , Name VARCHAR(20) '$.Name'
     , Languages VARCHAR(200) '$.Languages')
Run Code Online (Sandbox Code Playgroud)

以下是当前结果:

在此输入图像描述

但是我需要如下结果

在此输入图像描述

我究竟做错了什么?请帮忙。

sql t-sql sql-server arrays json

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

arrays ×1

json ×1

sql ×1

sql-server ×1

t-sql ×1