Sdílet prostřednictvím


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 .

Viz také