缺少字段的Azure流分析默认字段值

时间:2019-01-18 14:16:34

标签: azure-stream-analytics

我从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

1 个答案:

答案 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

输出:

enter image description here

或者您可以直接在sql数据库列中设置默认值。