在SQL Server(2012)中,我有一个带有数字值的字段。该字段的类型为int
假设db中的字段包含123456789
我这样搜索:

select * from table1 where field1 like '[1-9]{0,2}3456789'

我也尝试过'^[1-9]{0,2}$3456789'
两者都不起作用。我究竟做错了什么?

最佳答案

SQL Server本机不支持正则表达式。为此,您需要安装CLR组件。
LIKE模式语法不支持量词,因此,如果不使用CLR,唯一的选择就是将其扩展。

where field1 like '3456789'
 or  field1 like '[1-9]3456789'
 or  field1 like '[1-9][1-9]3456789'

09-11 17:54