Freigeben über


Sortierreihenfolge

Sortierungssequenzen werden von SQLite beim Vergleichen von Textwerten verwendet, um die Reihenfolge und Gleichheit zu bestimmen. Sie können angeben, welche Sortierung verwendet werden soll, wenn Spalten oder Vorgänge in SQL-Abfragen erstellt werden. SQLite enthält standardmäßig drei Sortierungssequenzen.

Sortierreihenfolge Beschreibung
RTRIM Nachstehende Leerzeichen ignorieren
NOCASE Groß-/Kleinschreibung für ASCII-Zeichen A bis Z wird nicht beachtet
BINARY Groß-/Kleinschreibung wird beachtet, Bytes werden direkt verglichen

Benutzerdefinierte Sortierung

Sie können auch eigene Sortierungssequenzen definieren oder die integrierten mit CreateCollationüberschreiben. Das folgende Beispiel zeigt das Überschreiben der NOCASE-Sortierung zur Unterstützung von Unicode-Zeichen. 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 Sortierungen. Die Standardimplementierung weist dieselbe 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

Ausführliche Informationen zum Überschreiben der Implementierung des LIKE-Operators finden Sie unter Benutzerdefinierte Funktionen.

Siehe auch