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
EXCEPTpeut contenir des lignes en double. UtilisezEXCEPT DISTINCTsi ce n’est pas souhaité. - Plusieurs instructions
EXCEPTsont exécutées de gauche à droite si aucune parenthèse n’est spécifiée. - L’opérateur
EXCEPTa la même priorité que la clauseUNIONet une priorité inférieure à celle de la clauseINTERSECT.
Syntaxe
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
EXCEPT.
Filtrer des nombres à l’aide de la clause EXCEPT
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
holdings qui contient la liste des cryptomonnaies que nous possédons, ainsi que le nombre d’unités détenues :
Query
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
Utilisation de EXCEPT DISTINCT
DISTINCT à EXCEPT pour supprimer les lignes en double du résultat :
Query
Response