如何解决将JSON数据中区分大小写的字段解析为SQL Server中的列时出错
我在SQL DB列中存储了具有JSON值的数据。我试图解析并从JSON值中获取一些列。 存储的JSON列中有两个具有相同名称的特定值,但是一个大写,而另一个则不大写。它们都代表两个不同的值。 现在,尽管我解析数据并保存在视图中,但由于SQL认为它的名称相同,所以不允许这样做,即使我更改了列的名称,它也没有反映应该的值,而是给出了值另一个同名。
这是我的示例数据
json = {"Deadline": "10-01-2020","deadline": "11-01-2020"}
json上方是数据库中的一列
这是我的SQL查询
select (Deadline,deadline)
from table_name
cross apply (json) with(Deadline datetime,deadline datetime)
这是不允许的,因为它们是相同的名称。
如果我愿意
select (Deadline,deadline as Deadline2)
from table_name
cross apply (json) with(Deadline datetime,deadline datetime)
它在Deadline2中给出了Deadline的结果,但没有提供截止日期的结果
解决方法
在WITH
子句中为他们提供不同的名称:
DECLARE @JSON nvarchar(MAX) = '{"Deadline": "10-01-2020","deadline": "11-01-2020"}';
SELECT *
FROM OPENJSON(@json)
WITH(Deadline_PC datetime '$.Deadline',deadline_LC datetime '$.deadline');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。