如何在SQL中对JSON内的数值进行去重处理?
SQL JSON数组通用去重实现方案
针对任意JSON数组的去重需求,可通过SQL Server的JSON函数实现通用处理逻辑,以下是具体代码:
declare @a int = 752 , @b nvarchar(max) = '[4,4]' SELECT @a AS a, JSON_QUERY('[' + STRING_AGG(DISTINCT value, ',') + ']') AS b FROM OPENJSON(@b)
核心逻辑说明
OPENJSON(@b):将目标JSON数组拆分为行数据,每个数组元素对应一行的value字段DISTINCT value:对拆分后的元素执行去重操作STRING_AGG(DISTINCT value, ','):把去重后的元素用逗号拼接成字符串JSON_QUERY('[' + ... + ']'):将拼接后的字符串包裹为合法的JSON数组格式
该逻辑同样适用于包含字符串元素的JSON数组(如'["x","y","x"]'),无需额外修改即可适配不同类型的数组元素。
内容的提问来源于stack exchange,提问作者Faizan Naeem
相关产品推荐
相关产品推荐

