Insensibles à la casse REPLACE() dans SQL Server 2000
J'ai un champ qui contient des chaînes de caractères comme 'Bla', 'Bla', etc. et voulez sélectionner sans plus. Cette seulement attrape le premier cas (façon de parler) et pas les autres:
SELECT field as "before", REPLACE(field, 'OVER', '') as "after"
Comment dois-je viens de les avoir tous à dire " Bla-' (en conservant le cas de ce qu'il en reste) sans chercher à couvrir tous les cas de combinaison avec un autre imbriquée fonction REMPLACER?
Merci, Remus, j'ai été à la recherche pour le bon tag, mais n'avait pas essayé cette zone de liste déroulante.
OriginalL'auteur Kev | 2009-09-23
Vous devez vous connecter pour publier un commentaire.
Utiliser une casse de classement:
Voir ASSEMBLER pour la liste des noms de classement si vous choisissez l'un approprié pour vos données.
Mise à jour
Ok, donc j'ai raté votre demande (en cas de modification de l'entrée, de ne pas trouver à la casse). La bonne solution est... de ne pas modifier l'entrée, mais l'utilisation adéquate de classement pour vos données. Si les données doivent être affichées dans un format spécifique, utilisez les options d'affichage dans le client, par exemple. CSS
text-transform:uppercase
, pas dans le serveur.Il n'y a pas intégrés dans une fonction SQL pour faire cette transformation, mais il est aisé de construire un Fonction CLR qui utilise RegEx. (Sur SQL 2005, pas sur SQL 2000... doh, j'ai besoin de plus de café).
OriginalL'auteur Remus Rusanu
Je ne suis pas familier avec SQL Server, mais peut-être qu'il vous permet d'utiliser des expressions régulières. Ces offrent généralement un casse mode (définie via l'i-drapeau).
Sinon, vous pourriez vous en majuscules avant de le remplacer appel, par exemple,
Un site je suis tombé sur vous suggère de besoin de quelques DLL personnalisée installé pour utiliser regexes sur 2000. Aussi, qui renvoie tous les " bla comme capitalisés-désolé, j'aurais dû préciser que dans la question, modifier.
OriginalL'auteur middus