Snowflake snippets

How to DELETE with JOIN in Snowflake

Let's suppose you have these Students and Rejected tables and your target is to DELETE the rows of the first one using the values of the second.

CREATE TABLE Students(
Name varchar(50),
Surname varchar(50),
Period int,
Sport int,
History int,
English int,
Geography int)
INSERT INTO
Students(Name,Surname,Period,Sport,History,English,Geography)
VALUES
('Luke','Green',1,30,20,23,NULL),
('Mary','Brown',1,17,15,NULL,30),
('John','Red',1,18,NULL,21,30),
('Walter','White',1,22,20,5,30),
('Luke','Green',2,30,20,23,NULL),
('Mary','Brown',2,NULL,15,17,30),
('John','Red',2,18,NULL,11,30),
('Walter','White',2,2,32,1,30),
('Luke','Green',3,20,15,15,12),
('Mary','Brown',3,0,3,NULL,4),
('John','Red',3,18,40,21,30),
('Walter','White',3,17,19,15,30),
('John','Red',3,NULL,23,23,30);

Snowflake snippet 1

CREATE TABLE Rejected(
Name varchar(50),
Surname varchar(50))
INSERT INTO
Rejected(Name,Surname)
VALUES
('John','Red'),
('Walter','White');

Snowflake snippet 1

You can use the following query to DELETE the values of Students using the values of Rejected, without any filter conditions.

DELETE 
FROM Students
using Rejected
where Students.Name=Rejected.Name
AND Students.Surname=Rejected.Surname

Snowflake snippet 1

Nicola Simboli

Nicola Simboli Senior Analytics Engineer

15+ years across SaaS, enterprise and consulting. Focused on scalable data platforms, metric reliability and analytics systems that teams actually use.

Back to Snowflake cookbook page