in
(T.‘a in U.‘a) 🡒 T.boolean, operator
The reserved keyword in
is a binary operator returning true
if the value found on the left vector exists anywhere in the right vector, and false
otherwise.
Example:
table Products[product] = with
[| as Product, as Price |]
[| "apple", 1.25 |]
[| "banana", 0.75 |]
table Orders = with
[| as Pid, as OrderDate, as Quantity |]
[| "apple", date(2020, 8, 15), 3 |]
[| "apple", date(2020, 8, 16), 7 |]
[| "orange", date(2020, 8, 16), 2 |]
where Orders.Pid in product // 'orange' is filtered out
Orders.Amount = Orders.Quantity * Products.Price[Orders.Pid]
show table "Orders" a1c3 with
Orders.Pid
Orders.OrderDate
Orders.Amount
The in
keyword can also be applied to tuples of vectors.
table T = with
[| as A, as X, as Y, as Z |]
[| "foo", 0, 1, 1 |]
[| "bar", 1, 0, 0 |]
table U = with
[| as X, as Y, as Z |]
[| 0, 0, 0 |]
[| 0, 1, 1 |]
where (T.X, T.Y, T.Z) in (U.X, U.Y, U.Z) // select the 'foo' line
show table "T" a1d2 with T.A, T.X, T.Y, T.Z