2017-06-14 45 views
0

我試圖做到這一點參考JSON列表值:如何使用一個變量

JSON_VALUE(@jsondata, CONCAT('$.[', @count, '].Name') 

,這樣我可以在我的JSON列表使用可變參考值,但是JSON_VALUE功能需要一個字符串字面第二個參數(JSON路徑)。

有沒有辦法讓函數讀取一個字符串作爲字符串文字,或另一種方式來引用一個列表與變量?

謝謝。

回答

0

您可以使用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更先進的方法:

相關問題