SQL Server如何在查询中更便捷地构建JSON格式结果列
SQL查询内置JSON构建方案(适配SQL Server环境)
你当前使用的字符串拼接方式存在特殊字符转义遗漏、类型处理不规范、维护成本高等问题,SQL Server 2016及以上版本已经内置了原生JSON构造能力,完全可以替代手动拼接方案:
方案1:SQL Server 2022+/Azure SQL 专用(最直观)
直接使用JSON_OBJECT函数,传入键值对即可直接生成标准JSON对象:
SELECT ProductCode, JSON_OBJECT('Product': Product, 'Price': Price) AS Details FROM #tmp
函数会自动完成所有JSON规范处理:
- 字段值含双引号、反斜杠、换行等特殊字符时自动转义
- 自动保留数据类型(数字类型不会被强制套上字符串引号)
- 无需手动处理拼接符号,增减字段直接修改函数内的键值对即可
方案2:SQL Server 2016~2019 兼容方案
使用FOR JSON PATH语法搭配WITHOUT_ARRAY_WRAPPER参数生成单个JSON对象:
SELECT ProductCode, (SELECT Product, Price FOR JSON PATH, WITHOUT_ARRAY_WRAPPER) AS Details FROM #tmp
输出结果和手动拼接完全一致,且原生兼容JSON所有规范,不会出现语法错误。
内容的提问来源于stack exchange,提问作者Krzysztof Krysztofczyk
相关产品推荐
相关产品推荐

