我有一个返回客户电话号码的查询。许多数字都是假的或无效的,客户已经在所有9个,全部1个,全部0个或两个的组合中输入。如何删除电话号码有x个重复数字的行,以便我可以消除无效数字,只显示有效数字的行?
我把它放在我的where子句中,但我不认为这是最好的方法。
where C.XBW-CELL-PHONE not in (0,9999999999,1111111111,1111110000)
All Phone Numbers
--------------
9999999999
9990000000
1111111111
9545205889
8008772321
1110001100
9991111111
Valid Phone Numbers
--------------
9545205889
8008772321
答案 0 :(得分:0)
这应该有效
where C.XBW-CELL-PHONE not like '%000%' and
not like '%111%' and
not like '%222%' and
not like '%333%' and
not like '%444%' and
not like '%555%' and
not like '%666%' and
not like '%777%' and
not like '%888%' and
not like '%999%';
但我认为您应该测试4个连续数字,3可能会删除实数。
答案 1 :(得分:0)
有效的:
WHERE phone RLIKE '[2345678]' -- existence of those digits --> allowed
OR ( phone RLIKE '0' ) AND
( phone RLIKE '1' ) AND
( phone RLIKE '9' ) -- all 3 of [019] --> allowed
如果您想使用4位数字,请将0,1,9更改为0000,1111,9999
如果'2222223333'应该无效,那么您未能在问题中指明这一点。
历史课。当美国地区代码首次出现时,它们仅限于正则表达式
[2-9][01][2-9]
接下来的3位数字看起来不像区号。