gpt4 book ai didi

mysql - Sql 多列检索单个值

转载 作者:行者123 更新时间:2023-11-29 23:12:36 24 4
gpt4 key购买 nike

id Mobile   Home      Business
1 07707 0161 abcdefg
2 Null 07798567 Null
3 07709 078 iju Null

嗨。我正在尝试弄清楚如何从包含一些错误数据的表中检索手机号码。

该数字可以位于任何全为 varchar 的列中。要查找的号码必须以 07 开头,长度必须为 11 位。

到目前为止我只做到了这一点:

select REPLACE ( 
COALESCE (Business_Phone, Cell_Phone, Home_Phone) Contact_Phone
, ' '.'')
from testtable
where len () =11?

如有任何建议,我们将不胜感激。谢谢。

最佳答案

尝试这个查询:

SELECT * FROM (
SELECT CASE
WHEN REPLACE(Business_Phone, ' ', '') LIKE '07[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' THEN REPLACE(Business_Phone, ' ', '')
WHEN REPLACE(Cell_Phone, ' ', '') LIKE '07[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' THEN REPLACE(Cell_Phone, ' ', '')
WHEN REPLACE(Home_Phone, ' ', '') LIKE '07[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]' THEN REPLACE(Home_Phone, ' ', '')
END AS TrueMobile
FROM testtable
) x
WHERE x.TrueMobile IS NOT NULL

它尝试查找包含 11 个数字(前两个数字为 07)、中间有任意数量的空格且没有其他字符的字段。它首先尝试 Business_Phone,然后是 Cell_Phone,最后是 Home_Phone。这 3 个字段均不匹配的记录将从结果集中排除。

关于mysql - Sql 多列检索单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28003452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com