KQL - Make the datasource variable

Viewed 54

i have 2 datasources which i want to be variable based on condition. But i cannot call them using variables. im not sure how can i make this work

let T1 = TableMetric;
let T2 = TableImperial;
let T3 = othertable;
let tablemetrics = case(@uommetrics=="meter",T1,@uommetrics=="imperial",T2,T3);
tablemetrics

Semantic error: '' operator: Failed to resolve scalar expression named 'T1'. Query: 'let T1 = TableMetric; let T2 = TableImperial; let T3 = othertable; let tablemetrics = case('a'=="meter",T1,'a'=="imperial",T2,T3); tablemetrics

1 Answers

This logic can be implemented with union operator

.set TableMetric <| datatable(i:int)[1,2,3]

.set TableImperial <| datatable(i:int)[4,5,6]

.set othertable <| datatable(i:int)[7,8,9]

let uommetrics = "xxx";
union 
    (TableMetric   | where uommetrics == "meter")
   ,(TableImperial | where uommetrics == "imperial")
   ,(othertable    | where uommetrics !in ("meter", "imperial"))
i
7
8
9
Related