SQLExpressions de table communes


Syntaxe

  • WITH QueryName [(ColumnName, ...)] AS (
    SELECT ...
    )
    SELECT ... FROM QueryName ...;

  • WITH RECURSIVE QueryName [(ColumnName, ...)] AS (
    SELECT ...
    UNION [TOUS]
    SELECT ... FROM QueryName ...
    )
    SELECT ... FROM QueryName ...;

Remarques

Documentation officielle: clause WITH

Une expression de table commune est un jeu de résultats temporaire pouvant résulter d'une requête complexe. Il est défini à l'aide de la clause WITH. CTE améliore la lisibilité et est créé dans la mémoire plutôt que dans la base de données TempDB où la variable Table temporaire et Table est créée.

Concepts clés des expressions de table communes:

  • Peut être utilisé pour casser des requêtes complexes, en particulier des jointures complexes et des sous-requêtes.
  • Est un moyen d'encapsuler une définition de requête.
  • Ne persister que jusqu'à l'exécution de la requête suivante.
  • Une utilisation correcte peut entraîner des améliorations de la qualité / maintenabilité et de la rapidité du code.
  • Peut être utilisé pour référencer la table résultante plusieurs fois dans la même instruction (élimine la duplication dans SQL).
  • Peut remplacer une vue lorsque l'utilisation générale d'une vue n'est pas requise; en d'autres termes, vous n'avez pas besoin de stocker la définition dans les métadonnées.
  • Sera exécuté lorsqu'il est appelé, pas lorsqu'il est défini. Si le CTE est utilisé plusieurs fois dans une requête, il sera exécuté plusieurs fois (éventuellement avec des résultats différents).

Expressions de table communes Exemples Liés