Le Structured Query Language (SQL ) utilisé pour la programmation de base de données informatique , gère les chaînes de caractères comme la plupart des langages de programmation font. Les variables et les littéraux de chaîne de caractères contenir du texte comme « Joe Smith » ou « 500, rue Main. " SQL a des règles régissant la comparaison de chaînes inégales , dont les résultats sont parfois inattendus . Quelques comparaisons de chaînes inégales comme entre "abc" et "xyz " sont évidents , d'autres exigent l'étude des règles de SQL.
Logiciel de serveur de cas de sensibilité
de Microsoft SQL n'est pas sensible à la casse pour les comparaisons de chaînes . Cela signifie qu'il traite les chaînes " John Doe " et "John Doe" comme égaux. Plusieurs fois, un programmeur considérer cela comme une bonne chose, car elle n'a pas besoin d' écrire du code supplémentaire pour forcer les deux chaînes en majuscules . Dans certains cas, cependant , elle veut comparaisons de chaînes sensibles à la casse . D'autre part , le logiciel de base de données Oracle est sensible à la casse pour "John Doe" ne correspond pas à « John Doe ». Un programmeur vouloir éliminer la casse serait d'utiliser une fonction telle que UPPER ( ) sur les deux chaînes , obligeant tous les caractères en majuscules .
longueur de la chaîne
les variables de caractère contenant des chaînes de longueurs inégales comparer inégale , même si elles commencent par les mêmes caractères. Par exemple, " 500 Main » et «500 Main Street" ne sont pas égaux . Les variables de caractère définis pour différentes longueurs , mais qui ont le même contenu sera également comparer . Si un champ de description a une longueur définie de 50 ans et un autre a une longueur de 30 , ils seront égaux si ils ont tous deux contiennent le texte "Blue Chaussures de course . "
Type
Vous pouvez définir des champs de chaîne de caractères SQL en tant que char , varchar, nchar ou types nvarchar. CHAR et NCHAR ont fixé des formats ; VARCHAR et NVARCHAR ont des tailles qui varient jusqu'à la valeur maximale spécifiée dans la définition du champ. Le type de champ n'a pas d'incidence sur les comparaisons de chaînes , si elles ont le même contenu , ils vont comparer égal . Vous ne pouvez pas comparer directement un champ de type texte avec un autre champ de chaîne de caractères ; drapeaux SQL cela comme une erreur
Blanks
Pour les chaînes de caractères SQL Server peut avoir un texte avec toute . combinaison d' avant, arrière ou incorporé blancs. Deux chaînes ayant un contenu similaire, mais où l'on a suivi blancs vont comparer égal , par exemple , "abc" et "abc ". Toutefois , SQL considère cordes avec espaces tels que "abc" et "abc" inégal . Strings avec des blancs embarqués tels que "abc " et " un bc" aussi ne sont pas égaux .