我在表中有一个充满正则表达式的列。
我的代码中有一个字符串,我想找出该列中哪些正则表达式与该字符串匹配并返回这些行。
除了拉动每一行并匹配正则表达式(这是昂贵的,检查单个页面加载可能有数千条记录)有没有办法在SQL中执行此操作而不是一个(或几个)查询?
示例输入:W12ABC
示例列数据
1 ^[W11][\w]+$
2 ^[W12][\w]+$
3 ^[W13][\w]+$
4 ^[W1][\w]+[A][\w]+$
5 ^[W1][\w]+[B][\w]+$
6 ^[W1][\w]+[C][\w]+$
应该返回第2行和第4行。
答案 0 :(得分:1)
T-SQL不提供此功能,但您可以通过使用.NET正则表达式类编写CLR函数在SQL Server中启用它。有a good article here解释如何执行此操作。
答案 1 :(得分:1)
如果您对通配符持开放态度,则可以存储适用于LIKE语法的模式:“W12%”或“W%ABC”。您的查询将如下所示:
SELECT * 从表 哪里'W12ABC'喜欢栏目