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.