[英]Get data as rows from array inside JSON column
我有一個表,其中'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)如何將結果顯示為一個字符串行,即
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}
}
要么刪除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
只是一個整數數組,沒有任何其他屬性
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.