gpt4 book ai didi

sql - 从 JSON 列中的数组中获取数据作为行

转载 作者:行者123 更新时间:2023-12-05 01:42:04 24 4
gpt4 key购买 nike

我有一个表,其中 'Preference' 列存储 JSON 字符串。

a) 我想从 companytype 获取 type 作为 rows。 在我尝试sqlfiddle我得到了五行,但其中没有数据。

SELECT z.[Type]
FROM FinPreferences p
CROSS APPLY OPENJSON(Preference,'$.companytype.type') WITH (
[Type] INT
) z
WHERE PreferenceID=1

b) 如何将结果作为一个字符串 row

1,2,3,4,5

这是 Preference 列中的数据

   {
"companysize":{"min":0,"max":5},
"distance":{"min":100,"max":200},
"companytype":{"type":[1,2,3,4,5]},
"budget":{"min":1000,"max":2000}
}

Fiddle is here

最佳答案

要么删除 WITH 子句并使用 value 字段检索数组的值,例如:

SELECT z.value as Type
FROM FinPreferences p
CROSS APPLY OPENJSON(Preference,'$.companytype.type') z
WHERE PreferenceID=1

或者只使用 $ 作为 WITH 子句中的路径:

SELECT z.Type
FROM FinPreferences p
CROSS APPLY OPENJSON(Preference,'$.companytype.type')
WITH ( Type int '$') z
WHERE PreferenceID=1

WITH 适用于 OPENJSON 返回的结果.路径 $.companytype.type 只是一个整数数组,它没有任何其他属性

关于sql - 从 JSON 列中的数组中获取数据作为行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52588293/

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