Is it possible to call a UDF in Snowflake using a view column as an input parameter? I have a column with multiple dates delimited by | and I want to check if at least one of those dates falls between a given range for each row.
I tried the below code but it is throwing an "Invalid expression in VALUES clause" error. It works when you pass individual values manually, but not when you pass a column as the input parameter DATE_LIST
CREATE OR REPLACE FUNCTION CHECK_DATE_RANGE (DATE_LIST VARCHAR, START_DT DATE, END_DT DATE)
RETURNS table (a boolean)
LANGUAGE SQL
AS
'WITH data_list AS (
SELECT ORDER_DT_LIST
FROM tableName
WHERE DATE_LIST = ORDER_DT_LIST
),
data_range AS (
SELECT value BETWEEN USER_START_DT AND USER_END_DT AS TF
FROM data_list, lateral split_to_table(ORDER_DT, ''|'')
ORDER BY seq, index
),
data_bool AS (
SELECT CASE WHEN SUM(CASE WHEN TF=TRUE THEN 1 ELSE 0 END) > 0 THEN TRUE
ELSE FALSE
END AS CHECK_DATE_RANGE
FROM data_range
)
select * FROM data_bool
';
