SQLite Except

Summary: in this tutorial, you will learn how to use the SQLite EXCEPT operator.

Introduction to SQLite EXCEPT operator

SQLite EXCEPT operator compares the result sets of two queries and returns distinct rows from the left query that are not output by the right query.

The following shows the syntax of the EXCEPT operator:

SELECT select_list1
FROM table1
EXCEPT
SELECT select_list2
FROM table2
Code language: SQL (Structured Query Language) (sql)

This query must conform to the following rules:

  • First, the number of columns in the select lists of both queries must be the same.
  • Second, the order of the columns and their types must be comparable.

The following statements create two tables t1 and t2 and insert some data into both tables:

CREATE TABLE t1(
    v1 INT
);

INSERT INTO t1(v1)
VALUES(1),(2),(3);

CREATE TABLE t2(
    v2 INT
);
INSERT INTO t2(v2)
VALUES(2),(3),(4);
Code language: SQL (Structured Query Language) (sql)

The following statement illustrates how to use the EXCEPT operator to compare result sets of two queries:

SELECT v1
FROM t1
EXCEPT 
SELECT v2
FROM t2;
Code language: SQL (Structured Query Language) (sql)

The output is 1.

The following picture illustrates the EXCEPT operation:

SQLite EXCEPT Operator Illustration

SQLite EXCEPT examples

We will use the artists and albums tables from the sample database for the demonstration.

The following statement finds artist ids of artists who do not have any album in the albums table:

SELECT ArtistId
FROM artists
EXCEPT
SELECT ArtistId
FROM albums;
Code language: SQL (Structured Query Language) (sql)

The output is as follows:

SQLite EXCEPT Example

In this tutorial, you have learned how to use the SQLite EXCEPT operator to compare two queries and return unique rows from the left query that are not output by the right query.

Was this tutorial helpful ?