ORDER BY für verschiedene Spalten in verschiedenen Richtungen in SQLite

8

Ich habe eine Tabelle definiert durch:

%Vor%

Meine grundlegende Auswahlanweisung lautet:

%Vor%

Wie bestelle ich meine Auswahl nach Index aufsteigend und Datum absteigend? kleine Indizes stehen vor großen Indizes. Für den Fall, dass zwei Indizes gleich sind, soll das spätere Datum zuerst kommen.

Die Dokumentation weist mich auf Kollaboration hin, aber ich bin nicht wirklich sicher, was das ist.

    
jamesh 23.08.2009, 22:45
quelle

1 Antwort

21

Obwohl ich weiß, dass Sie hier bereits Ihre eigene Antwort haben, denke ich, dass es sachdienlich ist, hier auf die Details bei der Arbeit einzugehen.

Zunächst wird die order by -Klausel in der Reihenfolge der angegebenen Spalten oder Ausdrücke angezeigt. In diesem Fall:

%Vor%

Sortiert nach index vom kleinsten zum größten ( asc endend) und dann _date vom größten zum kleinsten ( desc endend). Während asc der Standardwert ist, schließe ich es generell an, wenn mehrere Spalten in entgegengesetzte Richtungen gehen, wie Sie es hier tun.

Sie können auch Ausdrücke in Ihre order by einfügen:

%Vor%

Dies würde alle negativen Zeilen index an die Spitze setzen und diese dann nach _date sortieren. Die Verwendung von Ausdrücken in Ihrer order by -Klausel ist unter bestimmten Umständen sehr effektiv.

Nun haben Sie die Sortierung erwähnt und ein wenig Verwirrung darüber, was das ist. Collation ist, wie die Datenbank Groß- und Kleinschreibung in String-Vergleichen behandelt. Mit einer Sammlungssensitiven Sortierung, 'abc' != 'ABC' . Bei einer Sortierung nach Kapitäligkeit und Insensitivität 'abc' = 'ABC' .

Es sollte beachtet werden, dass die Sortierung nicht ein Zeichensatz ist. Dies wird normalerweise durch den Datentyp bestimmt ( varchar == ASCII, nvarchar == Unicode). Die Sortierung bestimmt, wie Zeichenfolgen verglichen werden und nicht, welche Zeichensätze zur Verwendung verfügbar sind.

Darüber hinaus ist die Sortierung auch bei bestimmten Sprachen wichtig. Bei einer lateinischen Sortierung müssen Sie sich nur um Groß- und Kleinschreibung kümmern, aber bei einer dänischen Sortierung, 'aa' = 'å' . 1 Sie können also sehen, dass die Sortierung eine große Rolle bei der Sortierung und dem Vergleich für verschiedene Sortierungen spielt Sprachen auch.

Die Sortierung ist bei der Bestellung sehr wichtig, da sie bestimmt, wie die Strings bei unterschiedlichen Groß- und Kleinbuchstaben sortiert werden. Deshalb kommt es bei Ihren Suchen immer wieder auf. Die Sortierung ist wichtig, und selbst hat diese Woche StackOverflow betroffen!

1 : Danke an Michael Madsen für den Hinweis auf dieses spezielle Beispiel.

    
Eric 23.08.2009, 23:02
quelle

Tags und Links