Using liquid parameters to filter multiple values

low_priority
done
reply
(Akash Agrawal) #1

This is a two part question -

  • Is there a way to use a parameter field to allow for filtering multiple values? Currently, the filter shows up as a text box that only allows a single value to be input. Am I missing something obvious here? If this isn’t possible, are there commonly used workarounds?

  • Can filtering on parameters be done with operators other than “Equal To”? The specific one we’d like to use is “Starts With”.

0 Likes

(Kyle) #2

Hi Akash,

For a parameter I don’t think you can do multiple values there. You could do this with values delimited with commas. For example you can have a parameter for Geographic State. You could then add the values ‘NY’,‘CA’,‘TX’ into said parameter. The statement below should work:

CASE
WHEN ${state} in ({% parameter geographic_state %}) then ‘In-State’
ELSE ‘Out State’
END

If you want to do “Starts With” you could use my above but change it to ‘N%’

CASE
WHEN ${state} ILIKE ({% parameter geographic_state %}) then ‘In-State’
ELSE ‘Out State’
END

Hopefully this helps or gives some ideas

Best,
Kyle

0 Likes

(Akash Agrawal) #3

Hey Kyle - thanks for that. I tried the first method, using the IN operator in the query, but the values are of the string datatype and hence don’t quite work in the query as expected. For example, if we filter the parameter for `CA,NY,TX’, it gets inserted into query as a single string - WHERE state IN (‘CA,NY,TX’) instead of (‘CA’,‘NY’,‘TX’).

Is there a simple workaround to this?

0 Likes

(Ian) #4

Use a filter and templates filters, unless there is a real need for a param

1 Like

(Kyle) #5

If you need the parameter you can always make the type unquoted and in your parameter make it ‘CA’,‘NY’,‘TX’. Using it as a filter would help solve this as well.

0 Likes

(Akash Agrawal) #6

Perfect. Thanks Kyle and Ian!

0 Likes