SQLでの曖昧検索は、「LIKE '%val1%'」とするとできますよね。
ただ、もし複数条件で、曖昧検索をしたい場合、次のようにorでつないで書いていないでしょうか。
x1 LIKE '%val1%' or x1 LIKE '%val2%'
これが、パターンが増えていくととても面倒なことになります。
BigQueryでは、こちらに書いたようなやり方があったのですが、Snowflakeではどうするんだろうと思って調べてみました。
x1 ILIKE ANY ('%val1%', '%val2%')
なんと、ILIKE ANYという関数があるんですね!
関数のリファレンスだと、
大文字小文字を区別せずに比較し、1つ以上の指定されたパターンのいずれかと文字列を一致させます。この関数を WHERE 句で使用して、一致するものをフィルターします。大文字と小文字を区別する一致では、代わりに LIKE ANY を使用します。
となっていて、大文字・小文字の区分だけがフォーカスされているんですが、実際にはまとめて曖昧検索もできてしまいます。
これで、きれいなSQL文が書けますね。