我是sql-server的新手,我尝试选择所有以AB开头,后跟1,2或3位数的记录。我尝试了以下查询,但它无效。如果我删除*而不是它的工作但跳过1和2位数的记录。我正在使用SQL-Server 2012.请帮忙!
select userid from registrations
where userid like 'AB[0-9]*[0-9]*[0-9]*'
答案 0 :(得分:3)
试试这样:
select userid from registrations
where userid like 'AB[0-9][0-9][0-9]'
or userid like 'AB[0-9][0-9]' or userid like 'AB[0-9]'
请注意,SQL Server支持limited pattern matching
您还可以查看Working with Regular Expressions,它将帮助您通过CLR使用Regex
答案 1 :(得分:3)
简单回答:LIKE
模式不是正则表达式。
模式语法为described in the docs。没有量词。
话虽如此,即使在正则表达式中 AB[0-9]*[0-9]*[0-9]*
也没有意义。
[0-9]*[0-9]*[0-9]*
相当于[0-9]*
,换句话说,即使LIKE
支持正则表达式,这很可能不会达到您想要的效果。