Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 选择不同的值忽略额外的字符_Mysql_Sql - Fatal编程技术网

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

Mysql 选择不同的值忽略额外的字符,mysql,sql,Mysql,Sql,我有一张有电话号码的桌子 example: 4685293 +924685293 1254152 我需要选择前两个值作为忽略+92的值 我可以在查询中执行此操作,还是必须通过代码手动执行此操作。删除要忽略的模式: REPLACE(example,'+92','') 如果可以有不同的模式,但始终有3个字符+xx,则可以执行以下操作: CASE WHEN phone LIKE '+[0-9][0-9]%' THEN RIGHT(phone,LEN(phone)-3) ELSE phone

我有一张有电话号码的桌子

example:

4685293

+924685293

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


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

删除要忽略的模式:

REPLACE(example,'+92','')
如果可以有不同的模式,但始终有3个字符+xx,则可以执行以下操作:

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

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

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

要选择您的本地电话号码,只需使用该功能

试试这个


所以不是快速回答-请提供有效代码,解释一般情况,如果任何人添加了不同的答案,以符合其他答案中的评论长度可能会有所不同,因此我不能在这里写7:+92也可能有所不同。我是否可以比较列的值以检查它是否包含上一个值?@SyedRizwanAli不清楚“上一个值”是什么意思。我的意思是我可以选择第一行值并与第二行进行比较,依此类推。
SELECT DISTINCT RIGHT(phone,7) FROM TABLE
 ;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