Comment clause order by fonctionne si deux valeurs sont égales?
C'est mon JOURNAL de table.
National News A 1
Sports D 1
Editorials A 12
Business E 1
Weather C 2
Television B 7
Births F 7
Classified F 8
Modern Life B 1
Comics C 4
Movies B 4
Bridge B 2
Obituaries F 6
Doctor Is In F 6
Lorsque j'exécute cette requête
select feature,section,page from NEWSPAPER
where section = 'F'
order by page;
Il donne à cette sortie
Doctor Is In F 6
Obituaries F 6
Births F 7
Classified F 8
Mais Kevin Loney Oracle 10g Référence Complète de la sortie, c'est comme cela
Obituaries F 6
Doctor Is In F 6
Births F 7
Classified F 8
S'il vous plaît aidez-moi à comprendre comment se produit-il?
Ne sont-ils pas la même sortie? En tout cas, la commande pour des résultats avec la même valeur est undefined, et vient probablement de retour fondée sur la façon dont ils arrivent à être stockées sur le disque.
Le résultat est le même?
Oh désolé, n'a pas pu copier la sortie du livre correctement. Ajout de la sortie du livre correctement.
qu'ils soient stockés sur le disque? Est-il dans l'ordre, ils sont insérés dans le tableau, ou en fonction des OS?
Le résultat est le même?
Oh désolé, n'a pas pu copier la sortie du livre correctement. Ajout de la sortie du livre correctement.
qu'ils soient stockés sur le disque? Est-il dans l'ordre, ils sont insérés dans le tableau, ou en fonction des OS?
OriginalL'auteur Abhishek kumar | 2012-12-27
Vous devez vous connecter pour publier un commentaire.
Dans les bases de données relationnelles, les tables sont des ensembles et sont non ordonnée. Le
order by
clause est utilisée principalement pour la sortie (et quelques autres cas comme une sous-requête contenantrownum
).C'est un bon endroit pour commencer. Le standard SQL ne précise pas ce qui doit se passer lorsque les touches sur un
order by
sont les mêmes. Et c'est pour une bonne raison. Différentes techniques peuvent être utilisées pour le tri. Certains pourraient être stable (la préservation de l'ordre original). Certaines méthodes peuvent ne pas être.L'accent sur le fait que les mêmes lignes sont dans les jeux, pas de leur commande. En passant, je considère ceci comme un exemple malheureux. Le livre ne devrait pas avoir d'ambigu sortes dans ses exemples.
Ce que je veux dire, c'est que la norme permet l'utilisation de la base de données des fournisseurs de marge de manœuvre sur la façon de mettre en œuvre certaines choses, et c'est une bonne chose.
Pour la développer, la commande peut être le traitement intensif: ne pas spécifier une valeur par défaut de la commande de feuilles vendeurs gratuit pour optimiser les requêtes qui n'ont pas une clause ORDER BY, cependant ils l'entendent.
OriginalL'auteur Gordon Linoff
Si vous avez besoin d' fiables, reproductibles ordonnant de se produire lorsque les deux valeurs dans votre
ORDER BY
de la clause de la première colonne sont les mêmes, vous devez toujours fournir un autre, secondaire colonne de commander également sur. Alors que vous pourriez être en mesure de supposer qu'ils vont trier eux-mêmes basés sur commande entrée (presque toujours le cas, à ma connaissance, mais sachez que le standard SQL ne précise pas la forme de tri par défaut) ou de l'indice, vous ne devrait jamais (sauf s'il est expressément déclarées comme telles pour le moteur que vous utilisez-et même alors, je serais personnellement jamais compter sur qui).Votre requête, si vous vouliez le tri par ordre alphabétique en fonction au sein de chaque page, doit être:
Même si vous considéré la commande conclue par un défaut de la commande, vous devez vous appuyer sur votre propre logique programmée plutôt que de prendre un raccourci qui pourrait déboucher sur des situations que vous n'avait pas prévu. Le standard SQL ne permet pas de spécifier des valeurs par défaut de la commande. À ma connaissance, Oracle n'a pas de document par défaut de la commande, ce qui signifie que tout ce que vous compter sur puisque vous semblez avoir des résultats reproductibles désormais pouvait changer. Les résultats que vous voulez voir de manière fiable devrait toujours être représenté par la logique du programme. Ne pas faire de suppositions sur ce qui n'est pas spécifiquement défini par vos outils ou votre code.
avez-vous une idée de la colonne qui va monter de plus en plus la préférence lors de la commande. Je suis en train de travailler sur certains de classement de la substance basée sur une colonne qui stocke les scores, mais le problème est que plusieurs lignes ont obtenu les mêmes valeurs de score et quand je les récupérer, ils viennent dans un ordre aléatoire. si je vais utiliser la clé primaire de type int comme deuxième argument de tri sera-ce toujours me donner le résultat dans le même ordre.
OriginalL'auteur taswyn