Je suis assez nouveau à SQL Server. Maintenant, je suis tombé sur une requête comme celle-ci: Il n'y a pas de nom de colonne indiqué dans la clause de l'ordre. Est-ce possible? SSMS dit non. P> Jörg P> P>
3 Réponses :
Je suis d'accord avec @mahmoud Gamal. Mais, aussi, il est possible d'écrire un tel piratage comme celui-ci - Dans ce cas, le tri sera effectué, mais la commande des lignes ne sera pas modifiée. P> sur MS SQL 2005: P> sur MS SQL 2012: P>
P>
P> P>
Je ne vois pas de tri exécuté lorsque j'essaie Select *, const_column = 1 de Master..spt_values Commandez par const_column ASC code> (et ne vois pas comment cela est pertinent pour la question de toute façon)
S'il vous plaît dites, pour ce que définit un moins? @ Jörg Weigel a demandé "Il n'y a pas de nom de colonne donné dans la clause de l'ordre?", Donc j'ai écrit uniquement la requête, par exemple, ce qui trie une valeur constante.
J'ai testé ce numéro en version du serveur 2005.
Partiellement d'accord avec vos commentaires.
C'est probablement une mauvaise reprentissement - vous devez spécifier ce que em> vous commandez par; Cela peut être un nom de colonne, une expression ou le numéro em> d'une colonne de la sortie. Il est fort probable que la requête que vous ayez vue était l'une des dernières, qui a simplement omis le numéro de colonne - donc cela serait donc commander par Le contenu de la première colonne de sortie (c'est-à-dire. 1 code> - comme: pays code>). p> p>
+1 N'aperçait pas que votre marque, mais à toute personne qui lisait ceci, la commande de la position ordinale est fronçée sur le code de production - SQL Server MVP Aaron Bertrand a une entrée de blog expliquant pourquoi: Mauvaises habitudes à frapper: Ordre par ordinal
Merci Mark. Je voulais juste être sûr que je n'ai pas négligé quelque chose.
Ce n'est pas possible! .. p>
L'ordre par clause nécessite toujours un nom de colonne ou un numéro de colonne. P>
Voulez-vous vous répondre pourquoi vous voulez ce genre de situation, je pense que vous travaillez avec une requête dynamique ou bien s'il vous plaît faites le moi savoir. p>
Selon SQL Standard, cela n'est pas possible. P>
merci. p>
Il n'est pas possible, vous devez mettre
ordre_by_expression code> dans lecommander par code> b> clause. Mais pourquoi i> b> voulez-vous le faire? Comment SQL Server doit-ilcommander par code> quelle colonne dans ce cas?Où êtes-vous sur i> cette question?
Jamais eu ça marche pour moi.
TIM: C'était à un test de test d'examen pour interroger SQL Server. (70-461)