2013-03-07 5 views
2

', mais la chaîne doit toujours avoir au moins un caractère, donc ce modèle ne retournera pas les chaînes vides !!SQLServer Regexp chaîne vide correspondant

Alors, y a-t-il un motif [^M]% qui vérifie ZERO ou UN caractère?

p.s. L'utilisation de NOT LIKE n'est pas une option dans mon cas, ni aucune modification de la clause where à l'exception du motif regexp.

Répondre

1

Vous pouvez mettre une condition OR MyField = ''. Vous utilisez SQL Server 2012, n'est-ce pas? En regardant la page d'aide, je ne vois aucune condition « ou » pour les regexps http://msdn.microsoft.com/en-us/library/ms179859.aspx

+0

Ne trouverait-il pas réellement des chaînes vides? L'OP voulait s'assurer qu'il y avait au moins un personnage. –

+0

@MichaelPerrenoud Citant de OP: 'si ce modèle ne retournera pas les chaînes vides !!' – xanatos

+0

Je suppose après avoir lu environ 30 fois que je peux voir cette interprétation. 99% la bataille ici est de comprendre la question plus! –

1

Une façon de faire [^M]% match de '' est d'ajouter juste un caractère non M à l'entrée;

where Fld + '?' like '[^M]%' 
+0

Je ne peux que changer l'expression rationnelle, pas toute la clause where. – Jaska

1

Pour l'expression rationnelle pure, vous devez utiliser les fonctions définies par l'utilisateur CLR.

Avec le support de regex vous pouvez rechercher ceux du formulaire \b|[^M].* qui permet un caractère vide ou un caractère non-M suivi par zéro ou plusieurs caractères.

http://msdn.microsoft.com/en-us/magazine/cc163473.aspx peut vous aider.

Questions connexes