在存储过程中使用正则表达式

时间:2011-06-15 23:10:38

标签: sql sql-server regex stored-procedures

什么是正则表达式模式,除了字符之外还可以启用每个输入?到目前为止,这就是我所拥有的 -

CREATE PROCEDURE Paging_Movies
@alphaChar char(1)
AS
if @alphaChar = '#'
select * from Movies where movies like '[0-9]%'
else
select * from Movies where movies like @alphaChar + '%'

2 个答案:

答案 0 :(得分:2)

如果您想要真正的正则表达式模式匹配,则需要滚动自己的CLR UDF。这个链接讨论了如何做到这一点:

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

请记住,您只能在SQL Server 2005或更高版本中执行此操作。

如果你只想要非alpha,你可以这样做:

'([^a-z])'

以下是SQL Server like的文档:

http://msdn.microsoft.com/en-us/library/ms179859.aspx

答案 1 :(得分:2)

SQL Server 2008 R2内置了一些regular expression functions

以下是解释how to extract them and use them in your own database的链接。