Kolace
Pořadí kolace používá SQLite při porovnávání hodnot TEXT k určení pořadí a rovnosti. Můžete určit, která kolace se má použít při vytváření sloupců nebo operací v dotazech SQL. SQLite ve výchozím nastavení obsahuje tři kompletující sekvence.
Kolace | Popis |
---|---|
RTRIM | Ignoruje koncové prázdné znaky. |
BEZ PÍSMEN | Malá a velká písmena pro znaky ASCII A-Z |
BINÁRNÍ | Case-sensitive. Porovnává bajty přímo |
Vlastní kolace
Můžete také definovat vlastní kompletující sekvence nebo přepsat předdefinované sekvence pomocí CreateCollation. Následující příklad ukazuje přepsání kolace NOCASE pro podporu znaků Unicode. Úplný ukázkový kód je k dispozici na GitHubu.
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;
Operátor Like
Operátor LIKE v SQLite nerespluje kolace. Výchozí implementace má stejnou sémantiku jako kolace NOCASE. Nerozlišuje se pouze malá a velká písmena pro znaky ASCII A až Z.
Pomocí následujícího příkazu direktivy pragma můžete snadno rozlišovat velká a malá písmena operátoru LIKE:
PRAGMA case_sensitive_like = 1
Podrobnosti o přepsání implementace operátoru LIKE najdete v tématu Uživatelem definované funkce .