Compartir a través de


Collation

SQLite usa las secuencias de intercalación al comparar valores de texto para determinar el orden y la igualdad. Puede especificar la intercalación que se va a usar al crear columnas o por operación en consultas SQL. SQLite incluye tres secuencias de intercalación de forma predeterminada.

Collation Descripción
RTRIM Ignora los espacios en blanco finales
NOCASE No distingue mayúsculas de minúsculas para los caracteres ASCII A-Z
BINARY Distingue mayúsculas de minúsculas. Compara los bytes directamente

Intercalación personalizada

También puede definir secuencias de intercalación propias o invalidar las creadas mediante CreateCollation. En el ejemplo siguiente se muestra cómo invalidar la intercalación NOCASE para admitir caracteres Unicode. El ejemplo de código completo está disponible en 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;

Like (operador)

El operador LIKE de SQLite no respeta las intercalaciones. La implementación predeterminada tiene la misma semántica que la intercalación NOCASE. No distingue mayúsculas de minúsculas para los caracteres ASCII de la A a la Z.

Puede hacer que el operador LIKE distinga mayúsculas de minúsculas con la siguiente instrucción pragma:

PRAGMA case_sensitive_like = 1

Vea Funciones definidas por el usuario para obtener más información sobre cómo invalidar la implementación del operador LIKE.

Vea también