sql - 如何在 Amazon Redshift 中获取电子邮件地址的第二部分或第一部分?
问题描述
我的表中有一个列保存电子邮件地址。
- 如何选择它的第一部分(在'@'之前)?
- 如何选择它的第二部分(在“@”之后)?
以下
WHERE
语句在 Redshift 中做了什么(email_add 是在表中保存电子邮件地址的列)?SELECT blablabla WHERE SUBSTRING(email_add,1,DECODE(POSITION('@' IN email_add),0,2,POSITION('@' IN email_add)-1)) IN ('arzt','zahnarzt','heilpraktiker','orthopaed','facharzt','praxis','gynaekol','klinik')
解决方案
对于 1 和 2,split_part
(在分隔符上拆分字符串并返回给定字段(从 1 开始计数)。https://www.postgresql.org/docs/9.1/functions-string.html:
SELECT split_part('abc@def.com', '@', 1); -- abc
SELECT split_part('abc@def.com', '@', 2); -- def.com
推荐阅读
- android - Jodatime:由于时区偏移转换(夏令时“间隙”)导致的非法瞬间
- sed - 使用 sed 替换括号内的`,`
- regex - 查找前面有另一个字符串的字符串的出现
- c++ - 时间复杂度 n^2
- c# - 如何在下拉列表中使用选择查询?在 MVC 控制器中
- wso2is - 如何将 wso2 用户的 UUID 作为 JWT 令牌的一部分导出?
- css - 当我使用 localpath 包含 bootstrap.min.css 时没有应用 css,当我使用 CDN url 而不是 localpath 时它可以工作
- css - Angular 7 html div 未显示在视图页面上(tooltip.js)
- laravel - 路径不能以“/”开头并包含字母符号或数字符号“>”是不允许的
- json - 如何在收到的 json 字段中转义 \