手机号的清洗问题

11点11分 2010-06-08 02:57:12
表中的一个字段用于存放手机号,字段类型为varchar

表数据有1000多万笔,

其中有些行中该字段不是手机号,比如空值,字母之类的,

有没有什么比较好的判断方法来去掉这些不是手机号的行
...全文
148 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xman_78tom 2010-06-08
  • 打赏
  • 举报
回复
tel not like '1[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
feilniu 2010-06-08
  • 打赏
  • 举报
回复

WHERE tel LIKE '1[3458]'+REPLICATE('[0-9]',9)
GOODlivelife 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 youandlm2010 的回复:]
引用 2 楼 caixia615 的回复:
具体要看你异常数据都是些什么内容


用isnumeric函数来判断不行,字段里面有不是手机号的数字,

看来只能用len(tel)=11来判断??

有没有正则表达式之类,那样会不会快点???
[/Quote]

如果是全数字加11位长度呢?
11点11分 2010-06-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 caixia615 的回复:]
具体要看你异常数据都是些什么内容
[/Quote]

用isnumeric函数来判断不行,字段里面有不是手机号的数字,

看来只能用len(tel)=11来判断??

有没有正则表达式之类,那样会不会快点???
jwdream2008 2010-06-08
  • 打赏
  • 举报
回复
select * from table1 where isnumeric([phoneNO])=1
GOODlivelife 2010-06-08
  • 打赏
  • 举报
回复
delete from tb where len(isnull(telno,''))=0 or isnumeric(telno)=0
caixia615 2010-06-08
  • 打赏
  • 举报
回复
具体要看你异常数据都是些什么内容
caixia615 2010-06-08
  • 打赏
  • 举报
回复
LEN(手机号)<>11

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧