Замена пустого строкового столбца на ноль в Kusto - PullRequest
0 голосов
/ 27 марта 2019

Как заменить пустой (ненулевой) столбец типа данных строки нулевым значением?

Так скажем, следующий запрос возвращает ненулевой набор записей: -

mytable | where mycol == ""

Теперь этостроки с mycol, содержащие пустые строки.Я хочу заменить их на нули.Теперь из того, что я прочитал в документации по kusto, у нас есть нулевые литералы, относящиеся к типу данных, такие как int (null), datetime (null), guid (null) и т. Д. Но нет строки (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 Ответ

2 голосов
/ 27 марта 2019

В настоящее время нет поддержки null значений для типа данных строки: https://docs.microsoft.com/en-us/azure/kusto/query/scalar-data-types/null-values

Я вполне уверен, что само по себе это не должно препятствовать достижению вами конечной цели, но эта цель в настоящее время не ясна.

[обновление на основе вашего обновления:]

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