如何在查询中仅获取电话号码而非电子邮件地址

时间:2017-05-11 08:34:36

标签: sql-server

大家好,我有一个代码,其中我将X和Y作为电话号码。

X数据类型varchar(10) Y数据类型varchar(100)

现在在Y列我有电子邮件地址,所以我的查询是如何只采取X + y作为电话号码,但当Y是电子邮件地址时,我不选择该行数据。

Select * from a.cus as cus_num, b.X+''+b.Y As phone number from table

他们是a和b的更多代码但是这里没有相关性所以我没有发布它。

示例数据:

cus     X    Y
123     12   21
234     21   xyz@gmail.com

所以我只想选择第一个cus号而不是第二个。

4 个答案:

答案 0 :(得分:3)

您可以在Y列中查看@

select a.cus as cus_num, 
    b.X + '' + b.Y as phone number
from table
where Y not like '%@%';

答案 1 :(得分:2)

您可以在其中添加带有通配符的notlike语句: https://www.w3schools.com/sql/sql_wildcards.asp

 Select * from a.cus as cus_num, b.X+''+b.Y As phone number from table where b.Y NOT LIKE('%@%')

答案 2 :(得分:1)

你可以尝试

SELECT CONCAT(X,Y) AS PhoneNumber FROM table WHERE Y NOT LIKE '%@%'

答案 3 :(得分:-1)

您可以使用REGEXP

SELECT CONCAT(X,Y) As PhoneNumber

FROM cus 在哪里注册' ^ [0-9] + $&#39 ;;