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.