我从IOT数据源传入一些json值以进行流分析。他们希望在更高版本中将json更改为具有其他字段,但较旧版本将没有这些字段。有没有一种方法可以检测到该字段丢失并在到达输出之前为其设置默认值?例如,他们想添加一个e.OSversion,如果不存在,则默认为“未知”。输出是一个发生时的sql数据库。
WITH MetricsData AS
(
SELECT * FROM [MetricsData]
PARTITION BY LID
WHERE RecordType='UseList'
)
SELECT
e.LID as LID
,e.EventEnqueuedUtcTime AS SubmitDate
,CAST (e.UsedDate as DateTime) AS UsedDate
,e.Version as Version
,caUsedList.ArrayValue.Module AS Module
,caUsedList.ArrayValue.UsageCount AS UsedCount
INTO
[ModuleUseOutput]
FROM
Usagedata as e
CROSS APPLY getElements (e.UsedList) as caUsedList
答案 0 :(得分:1)
请使用case..when..运算符。
示例:
select j.id, case when j.version is null then 'unknown' else j.version end as version
from jsoninput as j
输出:
或者您可以直接在sql数据库列中设置默认值。