如何在SQL Server查询中直接格式化压缩的JSON列内容?
在SQL Server中直接格式化JSON列内容
当然可以在查询语句内直接格式化压缩的JSON内容,根据你的SQL Server版本,有两种简单的实现方式:
1. SQL Server 2022及以上版本:直接用JSON_FORMAT函数
这是最贴合你需求的写法,和你设想的format_json几乎一致:
SELECT JSON_FORMAT(myjsoncol) AS FormattedJson FROM mytable
JSON_FORMAT会自动给JSON添加换行和缩进,直接输出可读性强的格式化内容。
2. SQL Server 2016~2019版本:借助JSON_QUERY和FOR JSON组合实现
如果你的版本不支持JSON_FORMAT,可以用以下语句间接实现格式化:
SELECT (SELECT JSON_QUERY(myjsoncol) AS [*] FOR JSON PATH, WITHOUT_ARRAY_WRAPPER, WITH_INDENT) AS FormattedJson FROM mytable
JSON_QUERY用于确保SQL Server将目标列识别为合法JSONFOR JSON PATH, WITH_INDENT负责生成带缩进的格式化结构WITHOUT_ARRAY_WRAPPER用来移除默认添加的外层数组括号,保持原始JSON的结构
注意:以上两种方法都要求你的JSON列内容是合法有效的JSON,否则会抛出语法错误。
内容的提问来源于stack exchange,提问作者Endy Tjahjono
相关产品推荐
相关产品推荐

