在我的表中,value
列包含json数据。我正在使用parsejson
来解析这些值。我使用的是旧版本的SQL Server。所以我使用的是parsejson:
id fieldid value
--------------------------------------------------------------------
1 70297 {"value":"Billable ","text":"Billable"}
2 70297 [{"value":"billable","text":"Billable"}]
3 70297 [{"value":"billable","text":"Billable"},
{"value":"nonbillable","text":"NonBillable"}]
4 70297 [{"value":" nonbillable","text":" NonBillable"}]
我需要这个输出:
count stringvalue
--------------------
3 Billable
2 nonbillable
我正在使用此查询来解析表中的json值:
DECLARE @Names VARCHAR(8000)
SELECT @Names = COALESCE(@Names + ', ', '') + Value
FROM ValueBindings
WHERE fieldid = 70297
SELECT COUNT(*), StringValue
FROM parseJSON(@Names)
WHERE NAME IN ('value', 'text')
GROUP BY StringValue
SELECT @Names
未正确返回预期值
答案 0 :(得分:0)
尝试以下方法:
SELECT COUNT([NAME])/2 [COUNT], LTRIM(RTRIM(StringValue)) StringValue
FROM parseJSON(@Names)
WHERE NAME IN ('value', 'text') AND [NAME] IS NOT NULL
GROUP BY LTRIM(RTRIM(StringValue))
感谢。