Sdílet prostřednictvím


Srovnání

SQLite používá kolace při porovnávání textových hodnot k určení pořadí a ekvivalence. 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.

Srovnání Popis
RTRIM Ignoruje koncové prázdné znaky.
BEZ PÍSMEN Nerozlišuje malá a velká písmena pro znaky ASCII A-Z
BINÁRNÍ Rozlišují se malá a velká písmena. 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řekonfiguraci 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 nerespektuje kolace. Výchozí implementace má stejnou sémantiku jako kolace NOCASE. Nerozlišuje malá a velká písmena pouze pro znaky ASCII od A do Z.

Pomocí následujícího příkazu pragma můžete snadno rozlišovat velká a malá písmena u 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é