I have an API that executes some KQL.
I'm executing a KQL that filters all rows such that some column (that is of type list of string) contains any of the values in some given list of strings.
Basically:
let foo1 = datatable(d: dynamic) [
dynamic([""]),
dynamic(["foobar"]),
dynamic(["Alice", "Bob"]),
dynamic(["Alice"])
];
foo1
| where d has_any (dynamic(["Alice", "otherthing"]))
Which outputs the last 2 rows as I expect - I wanted all rows where d has any of the values "Alice", "otherthing".
Everything works as expected, until I want all rows that contain the empty string value:
let foo1 = datatable(d: dynamic) [
dynamic([""]),
dynamic(["foobar"]),
dynamic(["Alice", "Bob"]),
dynamic(["Alice"])
];
foo1
| where d has_any (dynamic([""]))
and the result above outputs all rows, instead of only the first row, which has the empty string value.
- Why?
- What can I change in order for it to work as I expect it?