As part of an archived table query, the Lookup predicate allows the insertion of an array of values into placeholders in a template Boolean expression. Each row of the array represents a different instance of the same Boolean expression. When the Lookup predicate is processed, all of those individual expressions are combined by logical OR conjunctions into a larger conditional expression.
For example, the following inline Lookup instance:
Lookup( c1 = %1 AND c2 > %2 OR c3 < %3,
('N', 1, 100),
('Y', 2, 150),
('N', 3, 200)
)
is equivalent to the following conditional expression:
(c1 = 'N' AND c2 > 1 OR c3 < 100) OR
(c1 = 'Y' AND c2 > 2 OR c3 < 150) OR
(c1 = 'N' AND c2 > 3 OR c3 < 200)
In this example, the three rows of lookup values are inserted into placeholders in the lookup expression when the query is executed, producing three distinct Boolean expressions, connected by ORs.