簡體   English   中英

從JSON列中的數組中獲取數據作為行

[英]Get data as rows from array inside JSON column

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

a)我想從companytype獲取typerows 在嘗試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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM