sql server 2008 like语句正则表达式查询问题

比如说我要查询手机号码格式匹配的,如以13开头后面跟着的是9个数字... 比如说我要查询手机号码格式匹配的,如以13开头后面跟着的是9个数字 展开
 我来答
百度网友b0905b3
2013-10-21 · TA获得超过293个赞
知道小有建树答主
回答量:286
采纳率:100%
帮助的人:280万
展开全部
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里边的模糊查询常用到的
追问
是的,我现在也是这么写,但是应该有更简单的写法,按正则表达式有种类似于这样的写法[0-9]{9},后面的代表个数,我忘记是用什么符号了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bhtzu
2013-10-21 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4210万
展开全部
select * from 表 where 手机号码 like '13_________'
9个下划线,确保是9位。%是整体通配符,不能确保位数
追问
_下划线也是不行的,_下划线是匹配字符的,不一定是数字,如果非要这样写,只能用
like '13[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' ,太麻烦,应该是有其他简单的写法
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jiewukk
2013-10-21 · TA获得超过3207个赞
知道小有建树答主
回答量:903
采纳率:100%
帮助的人:826万
展开全部
SELECT *
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 这个是判断是否数字的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chen_hongyang
2013-10-21 · TA获得超过5447个赞
知道大有可为答主
回答量:2790
采纳率:91%
帮助的人:865万
展开全部
select * from 表 where 手机号码 like '13%'
更多追问追答
追问
知道%是什么意思吗
追答
% 在SQL里面用来模糊匹配,13%表示以13开头的字符串
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式