Kusto,根据条件执行操作

Lok*_*gga 7 kql azure-data-explorer

我正在尝试编写一个 Kusto 查询,其中有一个 bool 变量,并且基于该变量我想调用不同的函数。例如:

let flag = true;
let result = iff(flag == "true", function1, function2)
// function1 will return a different table and function2 will return another table.
Run Code Online (Sandbox Code Playgroud)

上面的代码是不可能的,因为类似的方法iff() and case()只能对标量值进行操作。

那么,有什么办法可以实现这一目标吗?

Avn*_*era 14

常见的技术是使用联合:

union (function1 | where flag), (function2 | where not(flag))
Run Code Online (Sandbox Code Playgroud)

这是一个完整的示例:

let A = datatable(col1:string)["A"];
let B = datatable(col1:string)["B"];
let funcA = view(){
        A
    };
let funcB= view(){
        B
    };
let flag = true;
union (funcA() | where flag), (funcB() | where not(flag))
Run Code Online (Sandbox Code Playgroud)
第 1 列
A

当标志为 false 时:

let A = datatable(col1:string)["A"];
let B = datatable(col1:string)["B"];
let funcA = view(){
        A
    };
let funcB= view(){
        B
    };
let flag = false;
union (funcA() | where flag), (funcB() | where not(flag))
Run Code Online (Sandbox Code Playgroud)
第 1 列