首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL试图识别以10位数开头的行。

SQL试图识别以10位数开头的行。
EN

Stack Overflow用户
提问于 2016-07-26 14:50:26
回答 1查看 107关注 0票数 0

因此,我的表LOCMEMBERS中有一个LOCMEMBERS字段。一些电子邮件地址开始一个10位数的电话号码,我正在尝试识别那些。因此,我正在寻找一种方法来标记5556667777@vtext.com,而不是10JamesDean@vtext.com

这是一个Oracle DB。

我尝试了以下操作,但是SUBSTRING抛出了一个错误“无效标识符”:

代码语言:javascript
复制
SELECT SUBSTRING(CAST(EMAILADDRESS AS VARCHAR(20)), 1, 10),         
FROM LOCMEMBERS
EN

回答 1

Stack Overflow用户

发布于 2016-07-26 15:06:42

尝尝这个

代码语言:javascript
复制
WITH
 locmembers(member_id, email_address) AS
 (SELECT 1,'12345@rrr.com' FROM dual UNION ALL   --numbers but < 10 digits
  SELECT 2,'1122334455@rrr.com' FROM dual UNION ALL  --numbers = 10 digits
  SELECT 3,'112233445566@rrr.com' FROM dual UNION ALL  --numbers > 10 digits
  SELECT 4,'emailaddress@rrr.com' FROM dual UNION ALL
  SELECT 5,'emailsaddress1122334455@rrr.com' FROM dual   --email address with 10 digits
 )
SELECT
 member_id
,email_address
,SUBSTR(REGEXP_REPLACE(email_address, '^[[:digit:]]{10}' ),1,1)
FROM
 locmembers
WHERE SUBSTR(REGEXP_REPLACE(email_address, '^[[:digit:]]{10}' ),1,1) = '@'
;
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38593195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档