在Kusto中​​将空字符串列替换为空

时间:2019-03-27 00:29:09

标签: kusto azure-data-explorer

如何用空值替换字符串数据类型的空(非空)列?

所以说以下查询返回非零记录集:-

mytable | where mycol == ""

现在这些是带有mycol的行,其中包含空字符串。我想将它们替换为null。现在,根据我在kusto文档中阅读的内容,我们有特定于数据类型的null文字,例如int(null),datetime(null),guid(null)等。但是没有string(null)。最接近字符串的是guid,但是当我以以下方式使用它时,出现错误:-

mytable | where mycol == "" | extend test = translate(mycol,guid(null))

错误:-

translate(): argument #0 must be string literal

那出路在哪里?

更新:-

datatable(n:int,s:string)
[
    10,"hello",
    10,"",
    11,"world",
    11,"",
    12,""
]
| summarize myset=make_set(s) by n

如果执行此操作,则可以看到空字符串被视为集合的一部分。我不希望这样,这样的空字符串不应成为我数组的一部分。但是同时我也不想失去n的值,如果我使用isnotempty函数,这正是发生的情况。因此,在下面的示例中,您可以看到未返回n = 12的行,无需跳过n = 12,总可以得到一个空数组:-

datatable(n:int,s:string)
[
    10,"hello",
    10,"",
    11,"world",
    11,"",
    12,""
]
| where isnotempty(s)
| summarize myset=make_set(s) by n

1 个答案:

答案 0 :(得分:2)

当前不支持null字符串数据类型的值:this site

我可以肯定的是,它本身并不能阻止您达到最终目标,但是该目标目前尚不清楚。

[根据您的更新进行更新:]

datatable(n:int,s:string)
[
    10,"hello",
    10,"",
    11,"world",
    11,"",
    12,""
]
| summarize make_set(todynamic(s)) by n