我需要按字典中的值对结果进行排序,该字典以 JSON 形式存储在我的表中,等于一个参数。为了得到它,我在我的订单上使用大小写来检查字典中的值是否与参数匹配。订购表格后,我需要区分结果,但是我遇到了一个错误,我无法弄清楚。
这是我的查询:
declare @FilteredItemIDs -> temp table that filtered my items
declare @CurrentGroupID as int
select distinct item.*
from Items as items
outer apply openjson(json_query(Data, '$.itemOrderPerGroup'), '$') as X
where items.ItemID in (select ItemID from @FilteredItemIDs )
order by case
when @CurrentGroupID!= 0 and (JSON_VALUE(X.[Value], '$.Key') = @CurrentGroupID) then 1
else 2 end,
CONVERT(int, JSON_VALUE(X.[Value], '$.Value'))