Explained: LIKE ALL() function in Snowflake ?

Are you looking to find what is LIKE ALL() function is within the Snowflake cloud data warehouse or maybe you are looking for a solution, how to use the Like All function in Snowflake? If you are looking for any of these problem solutions then you have landed on the correct page. I will also show you what and how to use the LIKE ALL() function. I will explain the LIKE ALL() function by taking practical examples. So don’t waste time, let’s start a step-by-step guide to understanding what the LIKE ALL() expression is.

What is LIKE ALL() Function?

Like All function is used to match the column with all patterns in a case sensitive manner. If the column value matches with all the input patterns it will return the true otherwise false.

How to use LIKE ALL() Function ?

LIKE ALL() function is used to allow matching of strings based on comparison with the given patterns and It should be matched with all the patterns. String matching is case-sensitive.

What are the SQL wildcards are supported in pattern :

  • Underscore (_) matches any single character.
  • Percent sign (%) matches any sequence of zero or more characters.
  • Wildcards in pattern include newline characters (\n) in subject as matches.
  • There is no default escape character.

What is the Syntax for Like All() Function in Snowflake?

-- Syntax : 

Input_column LIKE ALL ( Pattern-1, Pattern-2,..) [ Escape ]

LIKE ALL() Argument Details :

Input_columnString  value ( Mandatory )
PatternString value ( Mandatory )
ESCAPECharacter value ( Optional )
Table 1: Like All in Snowflake Parameter List

Input_column:

Input_column that compares the patterns. Typically varchar, although some other datatypes can be used.

Pattern :

Patterns that the string is to be compared to. Typically varchar, although some other datatypes can be used. We must specify at least one pattern.

Escape :

The characters that are inserted in front of the wildcard characters indicate that the wildcard should be interpreted as a regular character and not as a wildcard.

Return :

The data type of returned value is VARCHAR.

Examples of LIKE ALL() function in Snowflake:

Firstly, let’s create a table and insert some sample data.

Create a table and Insert the data

create or replace TABLE EMP (
ID NUMBER(38,0),                                                                         
NAME VARCHAR(30) COMMENT 'NAME OF THE EMPLOYEE',                                                                         
INFO VARCHAR(20) DEFAULT 'NOT-NULL'  
)


Insert into demo.public.emp(id,name) values((1,'Ram'),(2,'RAJU'),(3,'Sameer'))


select * from demo.public.emp;

+----+--------+----------+
| ID | NAME   | INFO     |
|----+--------+----------|
|  1 | Ram    | NOT-NULL |
|  2 | RAJU   | NOT-NULL |
|  3 | Sameer | NOT-NULL |
+----+--------+----------+

Examples for making use of LIKE ALL () function

select * from demo.public.emp
where name like all ('%Ra%','S%')
order by name;

+----+------+------+
| ID | NAME | INFO |
|----+------+------|
+----+------+------+

select * from demo.public.emp
where name like all ('%R%','RA%')
order by name;

+----+------+----------+
| ID | NAME | INFO     |
|----+------+----------|
|  2 | RAJU | NOT-NULL |
+----+------+----------+


select * from demo.public.emp
where name like all ('%Ra%','R%')
order by name;

+----+------+----------+
| ID | NAME | INFO     |
|----+------+----------|
|  1 | Ram  | NOT-NULL |
+----+------+----------+

Examples for making use of LIKE ALL() function with Escape

select * from demo.public.emp
where name like all ('%R^A%','R%') escape '^'
order by name;

+----+------+----------+
| ID | NAME | INFO     |
|----+------+----------|
|  2 | RAJU | NOT-NULL |
+----+------+----------+

As we can see in the above examples we got the output that matches all the given patterns. If one pattern is not matched then the data is not considered. Each data should be matched with all the given patterns. The advantage is here we can compare more than one pattern as well. So, we got the output that satisfies all the given patterns.

Full Example of ILIKE() function in Snowflake

-- Create a table

create or replace TABLE EMP1 (
	ID NUMBER(38,0),
	NAME VARCHAR(30),
	INFO VARCHAR(20),
);

-- Insert Data

insert into emp(id,name,amount) values 
(1,'Ram'),
(2,'RAJU'),
(3,'Sameer'),
(4,'Sai Kumar'),
(5,'Naveen Sai'),
(6,'Seshi Kumar'),
(7,'Rajiv Ram'),
(8,NULL)


-- Table Data

SELECT * from emp;
+----+-------------+----------+
| ID | NAME        | INFO     |
|----+-------------+----------|
|  1 | Ram         | NOT-NULL |
|  2 | RAJU        | NOT-NULL |
|  3 | Sameer      | NOT-NULL |
|  4 | Sai Kumar   | NOT-NULL |
|  5 | Naveen Sai  | NOT-NULL |
|  6 | Seshi Kumar | NOT-NULL |
|  7 | Rajiv Ram   | NOT-NULL |
|  8 | NULL        | NOT-NULL |
+----+-------------+----------+

-- Applying LIKE ALL function to table data

select * from emp
where name like all ('%Ra%','R%')
order by id;
+----+-----------+----------+
| ID | NAME      | INFO     |
|----+-----------+----------|
|  1 | Ram       | NOT-NULL |
|  7 | Rajiv Ram | NOT-NULL |
+----+-----------+----------+

When you should use LIKE ALL() Function in Snowflake?

There are certain use case scenarios when it is recommended to use the Like All function within the Snowflake cloud data warehouse which are as follows:

  • You want to get the column value on which all the patterns need to satisfy.
  • You want to match the input using SQL based wildcards, for example : %, _.

Real World Use Case Scenarios for LIKE ALL Function in Snowflake

  • You wanted to fetch all the customers, who often used to travel to Newyork.
  • In the banking application, you wanted to fetch all the accounts belongs to a specific place.

Difference Between the LIKE and LIKE ALL function in Snowflake?

The only difference is like will make with only one pattern whereas like all must satisfy all the patterns.

LIKE ALL() Snowflake Official Documentation Link

Final Thoughts

In this article, we have learned about the LIKE ALL() function and uses with the examples explained clearly. I have also covered different scenarios with practical examples that could be possible. I hope the information that was provided – helped in gaining the knowledge.

Please share your comments and suggestions in the comment section below and I will try to answer all your queries as time permits.

Leave a Comment