web-dev-qa-db-fra.com

Renvoie les lignes SQL où le champ contient UNIQUEMENT des caractères non alphanumériques

J'ai besoin de savoir combien de lignes dans un champ particulier de ma table de serveur SQL, contiennent SEULEMENT des caractères non alphanumériques.

Je pense que c'est une expression régulière dont j'ai besoin le long des lignes de [^ a-zA-Z0-9] mais je ne suis pas sûr de la syntaxe exacte dont j'ai besoin pour retourner les lignes s'il n'y a pas de caractères alphanumériques valides dedans.

27
marcusstarnes

SQL Server n'a pas d'expressions régulières. Il utilise la syntaxe de correspondance de modèle LIKE qui n'est pas la même.

En l'occurrence, vous êtes proche. Juste besoin de caractères génériques de début et de fin et déplacez le NOT

 WHERE whatever NOT LIKE '%[a-z0-9]%'
47
gbn

Si vous avez des chaînes courtes, vous devriez pouvoir créer quelques modèles LIKE ('[^a-zA-Z0-9]', '[^a-zA-Z0-9][^a-zA-Z0-9]', ...) pour faire correspondre des chaînes de longueur différente. Sinon, vous devez utiliser la fonction définie par l'utilisateur CLR et une expression régulière appropriée - les expressions régulières facilitent la correspondance des modèles et l'extraction des données .

2
Crack