Freigeben über


Sortierung

Sortierreihenfolgen werden von SQLite beim Vergleichen von TEXT-Werten verwendet, um die Reihenfolge und Gleichheit zu bestimmen. Sie können angeben, welche Sortierung beim Erstellen von Spalten oder pro Vorgang in SQL-Abfragen verwendet werden soll. SQLite enthält standardmäßig drei Sortierreihenfolgen.

Sortierung BESCHREIBUNG
RTRIM Ignoriert nachfolgende Leerzeichen.
NOCASE Groß-/Kleinschreibung für ASCII-Zeichen A bis Z wird nicht beachtet
BINÄR Groß-/Kleinschreibung wird beachtet, Vergleicht Bytes direkt

Benutzerdefinierte Sortierung

Sie können auch eigene Sortiersequenzen definieren oder die integrierten mit CreateCollation überschreiben. Das folgende Beispiel zeigt, wie die NOCASE-Sortierung außer Kraft gesetzt wird, um Unicode-Zeichen zu unterstützen. Der vollständige Beispielcode ist auf GitHub verfügbar.

connection.CreateCollation("NOCASE", (x, y) => string.Compare(x, y, ignoreCase: true));

var queryCommand = connection.CreateCommand();
queryCommand.CommandText =
@"
    SELECT count()
    FROM greek_letter
    WHERE value = 'λ' COLLATE NOCASE
";
var oCount = queryCommand.ExecuteScalar();
var count = (oCount is not null) ? (int)oCount : -1;

Like-Operator

Der LIKE-Operator in SQLite berücksichtigt keine Kollationen. Die Standardimplementierung weist die gleiche Semantik wie die NOCASE-Sortierung auf. Nur für die ASCII-Zeichen A bis Z wird die Groß-/Kleinschreibung beachtet.

Mithilfe der folgenden Pragmaanweisung wird bei Verwendung des LIKE-Operators die Groß-/Kleinschreibung berücksichtigt:

PRAGMA case_sensitive_like = 1

Details zum Überschreiben der Implementierung des LIKE-Operators finden Sie unter benutzerdefinierte Funktionen .

Siehe auch