Я хочу написать пользовательскую функцию, которая принимает ввод и возвращает, присутствует ли этот ввод в другом запросе. В основном это
.create-or-alter function with (folder = "foo") IsPresent(userInput: string) {
toscalar(
OtherTable
| where x == userInput
| summarize count()
)
)
}
Итак, я могу сделать что-то подобное в моем базовом запросе
Foo
| extend isPresent = IsPresent(x)
Это приводит к ошибке Semanti c error: '' имеет следующее semanti c error: Неразрешенная привязка ссылки: 'userInput'.
В качестве обходного пути я попытался изменить IsPresent для возврата make_list (x), а затем в моем базовом запросе сделайте это
let vals = IsPresent();
Foo
| extend isPresent = vals contains x
который работает, но невероятно медленно.
Есть ли правильный способ сделать это? Я пытаюсь избежать написания соединения в моем базовом запросе; я хотел бы что-нибудь простое и многоразовое. Я искал, но не могу найти примеров того, как кто-то пытается сделать что-то подобное