【发布时间】:2021-06-20 07:46:50
【问题描述】:
我有两行 json,我想将 id 加入到单个选择中。
示例表 A
| a |
|---|
| [{id: 1, name: "Alice"},{id:2, name: "Bob"}] |
| [{id: 5, name: "Charlie"},{id:6, name: "Dale"} |
示例表 B
| id | age |
|---|---|
| 1 | 30 |
| 2 | 32 |
| 3 | 20 |
| 4 | 14 |
期望的输出
| c |
|---|
| [{id: 1, name: "Alice", age: 30},{id:2, name: "Bob", age: 32}] |
| [{id: 5, name: "Charlie", age: 20},{id:6, name: "Dale", age: 14}] |
我想做类似的事情
select
id,
name,
age
from openJson(tableA) ta
with (
id int '$.id',
name nvarchar(50) '$.name'
)
inner join (
select *
from tableB tb
) on tb.id = ta.id
for json path
【问题讨论】:
-
好的,那么您的问题是什么?你所拥有的东西有什么问题?
-
你是不是没有引用 JSON 字段名?我认为
openjson不适用于未引用的字段名称 -
那么TableA中的每一行都是一个单独的数组?只是第二行的错字没有关闭该行的数组?
-
@squillman 是的。
-
@Larnu 我无法在多行上使用
openJson。 (希望将每个单元格连接到另一个表格)。
标签: json sql-server join