10
votes

Quelle est l'ordre exécutif des différentes parties d'une instruction SQL Select?

Quelle est l'ordre exécutif des différentes parties d'une instruction SQL Select? Tel que de

distinct de
Commander par
groupe de
Avoir de
Fonction multiline (compte, avg, max, min ...)
Top (SQL Server) ou Limit (MySQL)
Autres pièces
de
Les différentes bases de données ont-elles la même ordonnance d'exécution? Grand merci.

sql

4 commentaires

Dupliqué possible de ordre d'exécution de la requête SQL


J'ai demandé au 2010-04-11, la question que vous avez mentionnée est posée au 2011-01-04. Pourquoi ne pas dire que la question est une duplication de la mienne? @rsjaffe


Parce que l'autre a de meilleures réponses. L'objectif des drapeaux en double consiste à utiliser chaque question en double en tant que guide de guidage pour la recherche de la question, mais ensuite les envoyer au lieu où sont les réponses faisant autorité.


Voir meta.stackexchange.com/questions / 10841 / ... Pour plus de discussion sur la sélection de laquelle fermer.


3 Réponses :


15
votes

regarder

SQL Server - Phases de traitement de la requête logique - Ordre de l'exécution de la déclaration

  1. de
  2. sur
  3. extérieur
  4. où
  5. groupe par
  6. cube | Rollup
  7. avoir
  8. Sélectionnez
  9. distinct
  10. commander par
  11. Top

    Aussi, pour de bonnes informations, voir Traitement de la requête logique


2 commentaires

Où l'Union s'intègre dans cet ordre?


@Waltermitty Je sais que vous avez posé votre question il y a très longtemps, mais Union et Union Tout sont des moyens de rejoindre deux requêtes distinctes ensemble, de sorte que ce qui précède se produirait pour le premier Requête, puis la deuxième requête, puis le Union des deux résultats serait effectué.



2
votes

La réponse ci-dessus répond à la question, mais il existe une exception à l'ordre mentionné ci-dessus

quand vous avez

Sélectionnez Top N ............

commander par

Ensuite, commandez par sera exécuté avant de sélectionner. (Les entrées sont commandées d'abord, puis les entrées TOP N sont sélectionnées)


0 commentaires

0
votes

visite https://msdn.microsoft.com/fr- US / Bibliothèque / MS189499.aspx pour une meilleure explication.

Les étapes suivantes montrent l'ordre de traitement logique ou la commande de liaison, pour une instruction SELECT. Cette commande détermine lorsque les objets définis en une étape sont mis à la disposition des clauses des étapes ultérieures. Par exemple, si le processeur de requête peut se lier à (accès), les tables ou les vues définies dans la clause depuis, ces objets et leurs colonnes sont mis à la disposition de toutes les étapes suivantes. Inversement, comme la clause SELECT est étape 8, les alias de colonne ou les colonnes dérivées définies dans cette clause ne peuvent pas être référencées par des clauses précédentes. Cependant, ils peuvent être référencés par des clauses ultérieures telles que l'ordre par clause. Notez que l'exécution physique réelle de la déclaration est déterminée par le processeur de requête et la commande peut varier de cette liste.

de

sur

rejoindre

où

groupe par

avec cube ou avec rouleau

avoir

Sélectionnez

distinct

commander par

haut


0 commentaires