如何解决如何使用 OpenJson 将 JSON 列标题转换为小写
我正在尝试解析 SQL Server 中的 JSON 数据。列标题是大小写混合的。有没有办法将其转换为大写或小写。代码如下:
SELECT
pr.AuditEvent_Id as [AuditEvent_HttpHeaders_Id],[AuditEvent_HttpHeaders_ContentType],[AuditEvent_HttpHeaders_Accept],[AuditEvent_HttpHeaders_AcceptEncoding],[AuditEvent_HttpHeaders_AcceptLanguage],[AuditEvent_HttpHeaders_Authorization],[AuditEvent_HttpHeaders_Host],[AuditEvent_HttpHeaders_Referer],[AuditEvent_HttpHeaders_UserAgent],[AuditEvent_HttpHeaders_Origin]
FROM dbo.Audit_Resource pr
CROSS APPLY OpenJson(pr.HttpHeaders) WITH (
[AuditEvent_HttpHeaders_ContentType] varchar(255) '$."content-Type"',[AuditEvent_HttpHeaders_Accept] varchar(255) '$.accept',[AuditEvent_HttpHeaders_AcceptEncoding] varchar(255) '$."accept-Encoding"',[AuditEvent_HttpHeaders_AcceptLanguage] varchar(255) '$."accept-Language"',[AuditEvent_HttpHeaders_Authorization] varchar(255) '$.authorization',[AuditEvent_HttpHeaders_Host] varchar(255) '$.host',[AuditEvent_HttpHeaders_Referer] varchar(255) '$.referer',[AuditEvent_HttpHeaders_UserAgent] varchar(255) '$."user-Agent"',[AuditEvent_HttpHeaders_Origin] varchar(255) '$.origin',)
例如:在某些情况下,'$."content-Type"' 是 '$."Content-Type"'。如何使其不区分大小写。
解决方法
SELECT
pr.AuditEvent_Id as [AuditEvent_HttpHeaders_Id],[AuditEvent_HttpHeaders_ContentType],[AuditEvent_HttpHeaders_Accept],[AuditEvent_HttpHeaders_AcceptEncoding],[AuditEvent_HttpHeaders_AcceptLanguage],[AuditEvent_HttpHeaders_Authorization],[AuditEvent_HttpHeaders_Host],[AuditEvent_HttpHeaders_Referer],[AuditEvent_HttpHeaders_UserAgent],[AuditEvent_HttpHeaders_Origin]
FROM dbo.Audit_Resource pr
CROSS APPLY ( values ( replace(
replace(
replace(
replace(pr.HttpHeaders,'Content-Type','content-type'),'Accept','accept'),'accept-Encoding','accept-encoding'),'accept-Language','accept-language') -- ... Other Keys
) )J(S)
CROSS APPLY OpenJson(J.S) WITH (
[AuditEvent_HttpHeaders_ContentType] varchar(255) '$."content-Type"',[AuditEvent_HttpHeaders_Accept] varchar(255) '$.accept',[AuditEvent_HttpHeaders_AcceptEncoding] varchar(255) '$."accept-Encoding"',[AuditEvent_HttpHeaders_AcceptLanguage] varchar(255) '$."accept-Language"',[AuditEvent_HttpHeaders_Authorization] varchar(255) '$.authorization',[AuditEvent_HttpHeaders_Host] varchar(255) '$.host',[AuditEvent_HttpHeaders_Referer] varchar(255) '$.referer',[AuditEvent_HttpHeaders_UserAgent] varchar(255) '$."user-Agent"',[AuditEvent_HttpHeaders_Origin] varchar(255) '$.origin',)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。