sql server regex

Ita*_*y.B 2 regex sql sql-server sql-server-2012

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

select * from table1 where field1 like '[1-9]{0,2}3456789'
Run Code Online (Sandbox Code Playgroud)

我也试过了 '^[1-9]{0,2}$3456789'

两者都不起作用.我究竟做错了什么?

Mar*_*ith 6

SQL Server本身不支持正则表达式.您需要为此安装CLR程序集.

LIKE模式语法不支持量词所以不使用CLR的唯一选择是扩大它.

where field1 like '3456789' 
 or  field1 like '[1-9]3456789'  
 or  field1 like '[1-9][1-9]3456789' 
Run Code Online (Sandbox Code Playgroud)