Partilhar via


Colação

As sequências de agrupamento são usadas pelo SQLite ao comparar valores TEXT para determinar a ordem e a igualdade. Você pode especificar qual agrupamento usar ao criar colunas ou por operação em consultas SQL. SQLite inclui três sequências de agrupamento por padrão.

Colação Descrição
RTRIM Ignora o espaço em branco à direita
NOCASE Insensível a maiúsculas e minúsculas para caracteres ASCII de A a Z
BINÁRIO Sensível a maiúsculas e minúsculas. Compara bytes diretamente

Ordenação personalizada

Você também pode definir suas próprias sequências de agrupamento ou substituir as internas usando CreateCollation. O exemplo a seguir mostra a substituição do agrupamento NOCASE para oferecer suporte a caracteres Unicode. O código de exemplo completo está disponível no GitHub.

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;

Como operador

O operador LIKE no SQLite não respeita colações. A implementação padrão tem a mesma semântica que o agrupamento NOCASE. Não diferencia maiúsculas de minúsculas apenas para os caracteres ASCII de A a Z.

Você pode facilmente tornar o operador LIKE sensível a maiúsculas e minúsculas usando a seguinte instrução pragma:

PRAGMA case_sensitive_like = 1

Consulte Funções definidas pelo usuário para obter detalhes sobre como substituir a implementação do operador LIKE.

Ver também