You may be able to use 'in' but it won't be delegable when used that way.
Below is a snippet of a (very long, hoho - low code?) filter where I am splitting an array 'FilterStatus' which contains a comma separated list of selected statuses the users wishes to see.
I'm allowing for up to 7 statuses to be selected. There is no status 'X' so if only one status is selected (say, 'Open') the predicate becomes:
Status = 'Open' Or Status = 'X' Or Status = 'X' Or Status = 'X' Or Status = 'X' Or Status = 'X' Or Status = 'X' Or Status = 'X'
When constructed this way the filter will delegate.
Status = First(
Split(
FilterStatus,
","
)
).Result Or Status = Coalesce(
Last(
FirstN(
Split(
FilterStatus,
","
),
2
)
).Result,
"X"
) Or Status = Coalesce(
Last(
FirstN(
Split(
FilterStatus,
","
),
3
)
).Result,
"X"
) Or Status = Coalesce(
Last(
FirstN(
Split(
FilterStatus,
","
),
4
)
).Result,
"X"
) Or Status = Coalesce(
Last(
FirstN(
Split(
FilterStatus,
","
),
5
)
).Result,
"X"
) Or Status = Coalesce(
Last(
FirstN(
Split(
FilterStatus,
","
),
6
)
).Result,
"X"
) Or Status = Coalesce(
Last(
FirstN(
Split(
FilterStatus,
","
),
7
)
).Result,
"X"
)
),