Passer au contenu principal
La clause EXCEPT renvoie uniquement les lignes renvoyées par la première requête et pas par la seconde.
  • Les deux requêtes doivent avoir le même nombre de colonnes, dans le même ordre et avec le même type de données.
  • Le résultat de EXCEPT peut contenir des lignes en double. Utilisez EXCEPT DISTINCT si ce n’est pas souhaité.
  • Plusieurs instructions EXCEPT sont exécutées de gauche à droite si aucune parenthèse n’est spécifiée.
  • L’opérateur EXCEPT a la même priorité que la clause UNION et une priorité inférieure à celle de la clause INTERSECT.

Syntaxe

La condition peut être n’importe quelle expression, selon vos besoins. De plus, EXCEPT() peut être utilisé pour exclure des colonnes du résultat dans la même table, comme avec BigQuery (Google Cloud), en utilisant la syntaxe suivante :

Exemples

Les exemples de cette section illustrent l’utilisation de la clause EXCEPT.

Filtrer des nombres à l’aide de la clause EXCEPT

Voici un exemple simple qui renvoie les nombres de 1 à 10 qui ne figurent pas parmi les nombres de 3 à 8 :
Query
Response

Exclure des colonnes spécifiques avec EXCEPT()

EXCEPT() permet d’exclure rapidement des colonnes d’un résultat. Par exemple, si nous voulons sélectionner toutes les colonnes d’une table, à l’exception de quelques colonnes spécifiques, comme dans l’exemple ci-dessous :
Query
Response

Utilisation de EXCEPT et INTERSECT avec des données de cryptomonnaies

EXCEPT et INTERSECT peuvent souvent être utilisés de manière interchangeable, selon la logique booléenne employée, et tous deux sont utiles si vous avez deux tables qui partagent une colonne commune (ou plusieurs). Par exemple, supposons que nous ayons quelques millions de lignes de données historiques sur les cryptomonnaies contenant les prix des transactions et les volumes :
Query
Response
Supposons maintenant que nous ayons une table appelée holdings qui contient la liste des cryptomonnaies que nous possédons, ainsi que le nombre d’unités détenues :
Query
Nous pouvons utiliser EXCEPT pour répondre à une question comme “Parmi les cryptomonnaies que nous possédons, lesquelles ne sont jamais passées sous les 10 $ ?” :
Query
Response
Cela signifie que, sur les quatre cryptomonnaies que nous possédons, seul le Bitcoin n’est jamais passé sous la barre des 10 $ (d’après les données limitées dont nous disposons dans cet exemple).

Utilisation de EXCEPT DISTINCT

Notez que, dans la requête précédente, le résultat contenait plusieurs avoirs en Bitcoin. Vous pouvez ajouter DISTINCT à EXCEPT pour supprimer les lignes en double du résultat :
Query
Response
Voir aussi
Dernière modification le 25 juin 2026