sql server 2008 like语句正则表达式查询问题
4个回答
展开全部
select * from 表 where 手机号码 like '13[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
绝对复合你的要求,sql其实不支持正规的正则表达式,只是这种格式是sql server里边的模糊查询常用到的
绝对复合你的要求,sql其实不支持正规的正则表达式,只是这种格式是sql server里边的模糊查询常用到的
追问
是的,我现在也是这么写,但是应该有更简单的写法,按正则表达式有种类似于这样的写法[0-9]{9},后面的代表个数,我忘记是用什么符号了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from 表 where 手机号码 like '13_________'
9个下划线,确保是9位。%是整体通配符,不能确保位数
9个下划线,确保是9位。%是整体通配符,不能确保位数
追问
_下划线也是不行的,_下划线是匹配字符的,不一定是数字,如果非要这样写,只能用
like '13[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' ,太麻烦,应该是有其他简单的写法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SELECT *
FROM tablename
WHERE TelNum LIKE '13%'
AND ISNUMERIC(TelNum)=0
AND LEN(TelNum)=11
-------------------------
--正则的
SELECT *
FROM tablename
WHERE TelNum LIKE '13%[d{9}$]'
这个我不确定,只是能过滤到非数字的,我估计我尝试的你应该都试过了
FROM tablename
WHERE TelNum LIKE '13%'
AND ISNUMERIC(TelNum)=0
AND LEN(TelNum)=11
-------------------------
--正则的
SELECT *
FROM tablename
WHERE TelNum LIKE '13%[d{9}$]'
这个我不确定,只是能过滤到非数字的,我估计我尝试的你应该都试过了
更多追问追答
追问
LEN(TelNum)=11,这种写法是可以的,其实我是想知道正则的写法,[0-9]{9},类似这样的写法,9个数字
追答
上面的ISNUMERIC(TelNum)=0 应该是=1 这个是判断是否数字的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from 表 where 手机号码 like '13%'
更多追问追答
追问
知道%是什么意思吗
追答
% 在SQL里面用来模糊匹配,13%表示以13开头的字符串
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询