选择忽略额外字符的不同值

时间:2013-11-11 13:01:52

标签: mysql sql

我有一个电话号码表

example:

4685293

+924685293

1254152

我需要选择前两个值作为忽略+92

的值

我可以在查询中执行此操作,还是必须通过我的代码手动执行此操作。

4 个答案:

答案 0 :(得分:2)

要选择本地电话号码,请使用RIGHT()功能

SELECT DISTINCT RIGHT(phone,7) FROM TABLE

答案 1 :(得分:0)

删除您要忽略的模式:

REPLACE(example,'+92','')

如果可以使用不同的模式,但总有3个字符(+ xx),那么您可以执行以下操作:

CASE WHEN phone LIKE '+[0-9][0-9]%' THEN 
RIGHT(phone,LEN(phone)-3)
ELSE
phone
END

答案 2 :(得分:0)

你可以尝试只选择最后7个字符......

select distinct(substring(phoneno,-7)) from ...

答案 3 :(得分:0)

try this

 ;with cte as(
     select replace(ph,'+92','') as replaced,
     ROW_NUMBER() over (order by ph) as rn
      from [dbo].[ph] 
     )

     select * from cte where rn <3