Réalisation de recherches sensibles à la casse dans les clauses WHERE de SQL Server
Le comportement par défaut de SQL Server pour les comparaisons de chaînes dans les clauses WHERE n'est pas sensible à la casse. Cela présente un défi lorsque des recherches précises et sensibles à la casse sont nécessaires.
Exploiter le classement pour des comparaisons sensibles à la casse
La solution réside dans l'utilisation du mot-clé COLLATE
. Ce mot-clé vous permet de spécifier le classement de la colonne impliquée dans la comparaison, définissant ainsi les règles de correspondance des chaînes, y compris le respect de la casse.
Par exemple :
<code class="language-sql">SELECT 1 FROM dbo.Customers WHERE CustID COLLATE SQL_Latin1_General_CP1_CS_AS = @CustID AND OrderID COLLATE SQL_Latin1_General_CP1_CS_AS = @OrderID</code>
Ici, COLLATE SQL_Latin1_General_CP1_CS_AS
applique une comparaison sensible à la casse sur les colonnes CustID
et OrderID
.
Modification des propriétés des colonnes pour une sensibilité permanente à la casse
Pour un comportement cohérent sensible à la casse, vous pouvez ajuster les propriétés de la colonne directement dans la définition de la table. Par défaut, les colonnes sont créées avec des propriétés insensibles à la casse.
Intégration de COLLATE avec l'opérateur LIKE
Le mot-clé COLLATE
s'intègre parfaitement à l'opérateur LIKE
pour une correspondance de modèle sensible à la casse :
<code class="language-sql">SELECT * FROM tbl_Partners WHERE PartnerName COLLATE SQL_Latin1_General_CP1_CS_AS LIKE 'MyEx%' COLLATE SQL_Latin1_General_CP1_CS_AS</code>
Cette requête effectue une recherche sensible à la casse pour les valeurs PartnerName
commençant par « MyEx ».
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!