How to use case statements within Filter function in Magic ETL 2.0

Hi Team,

Trying to use case statements within filter function in the ETL 2.0. '

For instance, I want to only filter out records for specific dates for only specific people. However when I use the following formula :

case when member = 'John Doe' then date > '1/1/2021' ELSE NULL END

It filters out everything from the dataset. I even tried removing 'ELSE NULL' operand with no success. Any help will be appreciated



Best Answer

  • Ashleigh
    Ashleigh 🟣
    Answer βœ“

    It might be easier to do a formula by itself and then label each case as Keep or Remove and then do a filter on that field.

    So the formula tile would have something like "Filter Flag" and it could be like.


    when member = 'person1' and date >'1/1/21' then 'remove'

    when member = 'person2' and date <'2/1/21' then 'remove'

    else 'Keep'


    So basically you are listing all the cases you want removed and then everything else you keep.

    Then in the next tile filter when "Filter Flag' is Keep.


  • Hi @tejusarora

    Have you tried it to just return a TRUE / FALSE statement instead of doing your CASE statement?

    member = 'John Doe' AND `date` >'1/1/2021'

    **Was this post helpful? Click Agree or Like below**
    **Did this solve your problem? Accept it as a solution!**
  • @Ashleigh thanks for your response. This is what I finally ended up using. Was just curious if there was another way within filter :D

    @GrantSmith that will only keep john doe for '1/1/2021'