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. P>
3 Réponses :
regarder p>
Aussi, pour de bonnes informations, voir Traitement de la requête logique P>
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 code> et Union Tout code> 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 code> des deux résultats serait effectué.
La réponse ci-dessus répond à la question, mais il existe une exception à l'ordre mentionné ci-dessus p>
quand vous avez p>
Sélectionnez Top N ............ P>
commander par p>
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) P>
visite 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. P>
de p>
sur p>
rejoindre p>
où p>
groupe par p>
avec cube ou avec rouleau p>
avoir p>
Sélectionnez P>
distinct p>
commander par p>
haut p>
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.