【发布时间】:2018-05-16 06:21:32
【问题描述】:
有没有办法在多个分隔符上使用 split_part?
所以对于lower(trim(split_part(t.advisor_last_name,' ',1)),如果存在空格(如图所示)或逗号,我想拆分advisor_last_name。我们基本上有很多 CPA、CFA、CIMA 等,不允许我在不同文件之间进行适当的匹配。
有什么建议吗?
【问题讨论】:
标签: sql amazon-redshift
有没有办法在多个分隔符上使用 split_part?
所以对于lower(trim(split_part(t.advisor_last_name,' ',1)),如果存在空格(如图所示)或逗号,我想拆分advisor_last_name。我们基本上有很多 CPA、CFA、CIMA 等,不允许我在不同文件之间进行适当的匹配。
有什么建议吗?
【问题讨论】:
标签: sql amazon-redshift
您可以使用 REGEX_REPLACE 将所有其他分隔符替换为 ' '(空白字符),然后为 ' ' 执行 split_part!似乎是一种解决方法。
如果 split_part 的 delimiter 参数可以是正则表达式,您可以直接执行此操作,但看起来不是。
【讨论】:
regex_replace(source_string,"[\!;,.]",' ') 您可以在正则表达式模式中插入更多您想要的标点符号,但如果需要,请确保转义字符。这样 [ ] (字符类)中的任何内容都将替换为第三个参数,在您的情况下为 ' '
select regexp_replace(advisor_last_name,'[\!;,.]',' ') 工作就像一个魅力