Tout d'abord, j'ai lu tous les messages avant de les interminérez sur ce problème, mais je n'ai compris personne, alors j'essaie de trier toutes les colonnes de ma table que toutes trient sont ascendantes si la colonne est numérotée, mais si le Les colonnes sont Varchar2, il s'agit simplement d'une colonne et d'ignorer les autres.
Par exemple, ce code P>
4 Réponses :
Ordre par fonctionne, bien sûr, pour des types de données numériques et de chaîne. Les chiffres sont triés numériquement, tandis que les chaînes sont triées par ordre alphabétique (selon la collision).
Lors du tri sur deux colonnes, le second entre en jeu lorsqu'il y a des liens sur le premier. P>
Donc, p> trie d'abord par ordre alphabétique sur la colonne prénom; Lorsque plusieurs enregistrements ont le même prénom, ils seront triés sur la deuxième colonne, dans l'ordre alphabétique inversé. P> Dans votre cas, j'aurais tendance à soupçonner qu'il n'y a pas de prénom en double, qui est pourquoi la deuxième colonne n'est pas prise en compte lors du tri. p> p>
dans SQL "lignes" sont "solides", donc le premier argument de commande par est traité en premier puis si plusieurs lignes ont la même valeur sur la première colonne, le deuxième argument est traité et ainsi de suite.
Qu'est-ce que je pense que vous semez est p> de sorte que votre table soit triée d'abord par nom, puis par nom p> thake a look ici sur MS SQL La documentation du serveur du début à des «meilleures pratiques» incluse pour comprendre plus (ces sections sont plus ou moins générales) p> p>
Pour plusieurs commandes de colonne par déploies de la colonne de gauche à droite. Signifie que la première colonne sera toujours triée et secondaire être triée par rapport à la première colonne
par exemple dans les personnes ci-dessous des personnes avec des noms pour référence s'il vous plaît jetez un coup d'oeil sur SQL Commande par P> P>
Votre requête n'est pas "ignorer" les colonnes ....
Vous pensez peut-être que Le type de tri (ascendant ou descendant) est défini pour chaque partie de la clause de la commande par clause, s'il n'est pas explicitement indiqué, le comportement par défaut est ascendant. P>
Ensuite, vous commandez Si vous souhaitez que les deux parties de votre clause commandent descendants commander par first_name, last_name Desc code> doit trier les deux colonnes dans la commande décroissante, mais cela ne fonctionne pas de cette façon ... P>
commander par Premier_Name ASC, last_name Desc code> p>
commandez par le premier nom de nom, last_name Desc code> p> P>
N'oubliez pas que votre commande par commence par trier toutes les lignes i> selon le nom de premier_name. Si plusieurs lignes i> ont la même valeur de nommer, ce groupe est trié selon Last_Name Desc. (Jetez un coup d'œil aux rangées 4 et 5.)
Je ne comprends pas quel ordre vous attendez-vous.
Le type de tri est spécifié pour chaque partie de la commande par, votre requête trie comme "First_Name ASC, Last_Name Desc", si vous souhaitez commander les deux parties comme décrivant, vous devez le spécifier explicitement puisque la valeur par défaut est ASC .... " Commandez par First_Name Desc, last_name Desc "