J'essaye d'employer la correspondance de modèle de sql pour vérifier si une valeur de chaîne est dans le format correct.Comment vérifier la fin d'une chaîne particulière en utilisant la correspondance de modèle SQL?
Le code de chaîne doit avoir le format correct:
alphanumericvalue.alphanumericvalue
Par conséquent, les éléments suivants sont des codes valides:
D0030.2190
C0052.1925
A0025.2013
Et les éléments suivants sont des codes invalides:
D0030
.2190
C0052.
A0025.2013.
A0025.2013.2013
Jusqu'à présent, j'ai le SQL IF c suivant pour vérifier que la chaîne est correcte:
IF @vchAccountNumber LIKE '_%._%[^.]'
Je crois que la partie "_%" vérifie 1 ou plusieurs caractères. Par conséquent, cette instruction vérifie un ou plusieurs caractères, suivi d'un "." caractère, suivi par un ou plusieurs caractères et en vérifiant que le caractère final n'est pas un ".".
Il semble que cela fonctionnerait pour toutes les combinaisons, sauf pour le format suivant lequel la clause IF permet un code valide:
A0025.2013.2013
Je vais avoir du mal à corriger cette clause IF pour lui permettre de traiter cette le format est incorrect. Quelqu'un peut-il m'aider à corriger cela?
Merci.
besoin de connaître le fournisseur SQL afin de connaître les capacités correspondant à motif. Par exemple, SQL Server 2005+ a une correspondance de modèle limitée à l'aide de PATINDEX, mais le support de regex nécessite l'utilisation de fonctions CLR ... –
Ce script doit être déployé dans les bases de données SQL Server 2005 et SQL Server 2008. – Dangerous