gpt4 book ai didi

sql - 使用通配符的 OpenJson

转载 作者:行者123 更新时间:2023-12-04 02:41:32 24 4
gpt4 key购买 nike

我有一个使用 OPENJSON 将 JSON 数据导入表的 SQL 查询。我的问题是我需要的数据是嵌套的。如何在 JSON 路径中使用通配符来获取我需要的内容?

SELECT @Set = 
BulkColumn FROM OPENROWSET
(BULK 'Sets.json', DATA_SOURCE = 'MyAzureJson', SINGLE_BLOB) JSON;

INSERT INTO [Sets]
SELECT [name]
FROM OPENJSON(@Set)
WITH(
[name] nvarchar(50) '$.*.name'
)
我的json文件是这样设置的..
{
"testOne" : {
name: "nameOne"
},
"testTwo : {
name: "nameTwo"
}
}
我在尝试的所有方法中遇到的错误..
JSON 路径格式不正确。在位置 2 发现意外字符“*”。
我试过了 。 * [] 没有任何效果

最佳答案

据我所知,OPENJSON 中不支持通配符。
相反,您可以通过忽略搜索中的字段名称来解决。使用 JSON_VALUE为了这。

INSERT INTO [Sets]
SELECT
JSON_VALUE([value], '$.name')
FROM
OPENJSON(@Set)

说明:如果没有在 WITH中定义OPENJSON的变量条款,而是做一个简单的 SELECT * FROM OPENJSON(@Set)查询,您将获得包含键、值和类型列的结果(参见下面的示例输出)。因为 key包含您有问题的字段名称,您可以忽略该部分并查看 value数据列。
[key]      [value]                [type]
----- ------- ------
testOne { name: "nameOne" } 5
testTwo { name: "nameTwo" } 5

关于sql - 使用通配符的 OpenJson,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46699458/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com