假设有一个表A,其中包含列Information
,数据以JSON格式存储在该列中。存储在该列中的JSON字符串可能具有属性Comment
和Timestamp
或属性comment
和timestamp
。如下所示:
[{"Timestamp":"2018-04-11 18:14:59.9708","Comment":"first comment"}]
[{"timestamp":"2017-04-11 18:14:59.9708","comment":"second comment"}]
[{"Timestamp":"2019-04-11 18:14:59.9708","Comment":"third comment"}, {"timestamp":"2017-04-11 18:14:59.9708","comment":"last comment"}]
下面的脚本只解析大写属性的JSON字符串,并对小写属性的JSON字符串抛出错误。
Select jsonInfo.*
From OPENJSON(@Information, N'$')
with(
Comment nvarchar(max) N'$.Comment',
TimeStamp datetime '$.Timestamp'
) as jsonInfo;
是否有语法可以忽略大小写,同时返回Comment
或comment
属性。
2条答案
按热度按时间4ngedf3f1#
如文档中所述,通过显式架构(
WITH
子句),OPENJSON()
将输入JSON表达式中的关键字与WITH
子句中的列名进行匹配,并且匹配区分大小写。但是,作为一种可能的解决方法,您可以尝试将OPENJSON()
与默认架构和条件聚集一起使用:声明:
结果:
fkaflof62#
我知道现在给予答案已经太晚了,但对于社区来说,最简单的解决方法是对json字符串应用LOWER或UPPER函数。