如何为OPENJSON查询结果添加自定义固定值列?
实现方式
要添加固定值的Type列,有两种简单的实现方法:
方法一:在OPENJSON的WITH子句中定义固定列
直接在WITH的字段列表里新增固定列,指定常量值即可,不需要关联JSON路径:
DECLARE @json NVARCHAR(4000) = N'{ "pets" : { "cats" : [ { "id" : 1, "name" : "Fluffy", "sex" : "Female" }, { "id" : 2, "name" : "Long Tail", "sex" : "Female" }, { "id" : 3, "name" : "Scratch", "sex" : "Male" } ] } }' SELECT * FROM OPENJSON(@json, '$.pets.cats') WITH ( id INT '$.id', name VARCHAR(10) '$.name', sex VARCHAR(10) '$.sex', Type VARCHAR(10) N'mammal' -- 新增固定值列 )
方法二:在SELECT语句中直接追加常量列
如果不想修改OPENJSON的解析定义,可以在查询结果里直接添加固定列:
DECLARE @json NVARCHAR(4000) = N'{ "pets" : { "cats" : [ { "id" : 1, "name" : "Fluffy", "sex" : "Female" }, { "id" : 2, "name" : "Long Tail", "sex" : "Female" }, { "id" : 3, "name" : "Scratch", "sex" : "Male" } ] } }' SELECT id, name, sex, 'mammal' AS Type -- 追加固定值列 FROM OPENJSON(@json, '$.pets.cats') WITH ( id INT '$.id', name VARCHAR(10) '$.name', sex VARCHAR(10) '$.sex' )
两种方法最终都会返回包含id、name、sex、Type四列的结果,其中Type列的值固定为mammal。
内容的提问来源于stack exchange,提问作者Yoav24
相关产品推荐
相关产品推荐

