【发布时间】:2021-12-23 11:02:51
【问题描述】:
我正在尝试从别名中获取主要电子邮件,例如,我有以下示例,我需要对它们进行规范化。
- 从“test.me@email.com”到“testme@email.com”
- 从“test+me11@email.com”到“test@email.com”
- 从“test.me.123+22@email.com”到“testme123@email.com”
- 从“test+123@email.com”到“test@email.com”
我在 bigquery 上编写了一条 SQL 语句,但收到一条错误消息,提示“SUBSTR() 中的第三个参数不能为负数”
SELECT TRANSLATE(SUBSTR('test+123@email.com', 1, INSTR('test+123@email.com', '+')-1),'+.', '') ||'@' || SUBSTR('test+123@email.com', Instr('test+123@email.com','@')+1)
对上述内容的任何想法或建议或使用 regex_replace 的想法
谢谢
【问题讨论】:
-
在“我有以下电子邮件”之后,您会显示一个与电子邮件地址不同的列表(因为
>不是电子邮件地址中的有效字符)。请edit您提问,让我们知道您对 "A > B" 的含义,其中 A 和 B 都是有效的电子邮件地址 -
我编辑了这个问题,我的意思是 A>B A(包含别名的电子邮件)B(没有别名的电子邮件)
-
您正在更改电子邮件地址,而不是对其进行规范化。电子邮件地址“abc.def@example.com”与“abcdef@example.com”是不同的地址(不一定是它的别名)
-
你说得对,我应该更清楚,例如,如果是 Gmail,那么点无关紧要,如果是 gmail,我想要这项工作
标签: sql google-bigquery