0
我試圖做到這一點參考JSON列表值:如何使用一個變量
JSON_VALUE(@jsondata, CONCAT('$.[', @count, '].Name')
,這樣我可以在我的JSON列表使用可變參考值,但是JSON_VALUE功能需要一個字符串字面第二個參數(JSON路徑)。
有沒有辦法讓函數讀取一個字符串作爲字符串文字,或另一種方式來引用一個列表與變量?
謝謝。
我試圖做到這一點參考JSON列表值:如何使用一個變量
JSON_VALUE(@jsondata, CONCAT('$.[', @count, '].Name')
,這樣我可以在我的JSON列表使用可變參考值,但是JSON_VALUE功能需要一個字符串字面第二個參數(JSON路徑)。
有沒有辦法讓函數讀取一個字符串作爲字符串文字,或另一種方式來引用一個列表與變量?
謝謝。
您可以使用OPENJSON
將它解構成一個表格來解決帶有變量的列表。
例如,給定:
declare @jsondata nvarchar(max) = '[
{"Name":"zero","Value":"cero"},
{"Name":"one","Value":"uno"},
{"Name":"two","Value":"dos"},
{"Name":"three","Value":"tres"}
]'
declare @count int set @count = 1
declare @val nvarchar(50)
set @val = (select JSON_VALUE(value, '$.Name') from OPENJSON(@JsonData) d where d."key" = @count)
select @count, @val
因爲你可以與描述的結構和元素,你有興趣在一個架構查詢JSON更先進的方法: