日期:2014-05-18  浏览次数:20471 次

SQL正则问题
select * from table1
where userid=@userid+[0-9]+[0-9] 这个语句只是想达到的效果

[0-9]的 意思是0到9中,任意一个数字

例如@user的值可能是 NOIR 但是要查出 NOIR01 NOIR02 .....NOIR99 的记录

问各位大大这个查询语句怎么写哈 ?

------解决方案--------------------
SQL code
declare @T table (userid varchar(100))
insert @T select 'NOIR01'
insert @T select 'AAAA01'
insert @T select 'NOIR02'
insert @T select 'NOIR123'

declare @userid varchar(100)
set @userid='NOIR'

select * from @T where userid like @userid+'[0-9][0-9]'

/*
userid
NOIR01
NOIR02
*/

------解决方案--------------------
这简单的匹配LIKE即可
SQL 还不支持正则表达式,如果要用的话,SQL 2005可以写CLR函数
2000惨一点要写扩展存储过程,或者调OLE组件
------解决方案--------------------
路过,领教
------解决方案--------------------
呵呵,老大来了啊,最近不知道是改版的原因还是都放假了,人很少。
------解决方案--------------------
SQL code
    test