2012-11-18 30 views
2

在SQL Server(2012年)我有数值的字段。该字段的类型为int。 假设db中的字段包含123456789。 我在寻找这样的:SQL Server的正则表达式

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

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

两者都不能正常工作。我究竟做错了什么?

+0

哪个版本?不支持 –

+0

的SQL Server 2012 –

+0

正则表达式为整数仍然可以用户正则表达式搜索在SQL –

回答

6

SQL服务器本身并不支持正则表达式。你需要为此安装一个CLR程序集。

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

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

文本“不支持量词” ......这样的耻辱:)谢谢你的帮助。 –

+0

它支持^ $吗? –

+0

使用“or field1 like”几次会伤害性能? –