Classement

Les séquences de classement sont utilisées par SQLite lors de la comparaison de valeurs TEXT pour déterminer l’ordre et l’égalité. Vous pouvez spécifier le classement à utiliser lors de la création de colonnes ou par opération dans des requêtes SQL. SQLite comprend trois séquences de classement par défaut.

Classement Description
RTRIM Ignore l’espace blanc de fin
NOCASE Non sensible à la casse pour les caractères ASCII de A à Z
BINARY Respectent la casse. Compare directement les octets

Classement personnalisé

Vous pouvez également définir vos propres séquences de regroupement ou remplacer les séquences intégrées à l’aide de CreateCollation. L’exemple suivant montre comment remplacer le classement NOCASE pour prendre en charge les caractères Unicode. L’exemple de code complet est disponible sur 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 (opérateur)

L’opérateur LIKE dans SQLite n’honore pas les classements. L’implémentation par défaut a la même sémantique que le classement NOCASE. Elle ne respecte pas la casse uniquement pour les caractères ASCII de A à Z.

Vous pouvez facilement rendre l’opérateur LIKE sensible à la casse à l’aide de l’instruction pragma suivante :

PRAGMA case_sensitive_like = 1

Pour plus d’informations sur la substitution de l’implémentation de l’opérateur LIKE, consultez Fonctions définies par l’utilisateur.

Voir aussi