You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL查询如何筛选仅含11位有效电话号码的数据行?

筛选11位有效电话号码的SQL查询修正

要只保留11位符合规范的电话号码数据行,你需要在WHERE条件里补充长度校验和有效性校验,同时修正原SQL的语法问题,以下是调整后的代码:

修正后的SQL(以SQL Server为例)

SELECT
  Codclie,
  Descrip AS [Name],
  Telef AS [Telephone], -- 本身就是11位,无需截取
  CAST(FechaE AS DATE) AS [first sale]
FROM Customers -- 替换成你的实际客户数据表名
WHERE
  Telef <> ''
  AND LEN(Telef) = 11 -- 严格限制长度为11位
  AND Telef NOT LIKE '%[^0-9]%' -- 确保是纯数字,排除含字母/符号的无效值
  AND Telef <> '00000000000' -- 排除全零的无效号码
ORDER BY CAST(FechaE AS DATE) DESC

关键条件说明

  • LEN(Telef) = 11:直接限定电话号码的字符长度为11,过滤掉8位等长度不符的数据
  • Telef NOT LIKE '%[^0-9]%':用通配符匹配排除任何包含非数字字符的记录,避免比如带括号、横线的无效格式
  • Telef <> '00000000000':精准排除全零的无效号码

其他数据库适配提示

如果用MySQL,把LEN()换成CHAR_LENGTH();如果用Oracle,直接用LENGTH()即可,其他条件逻辑一致。

内容的提问来源于stack exchange,提问作者ArnaldoData

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 03:30:47