如何获取基于字符的子字符串并开始从右侧读取字符串

时间:2019-06-17 11:05:14

标签: sql regex amazon-redshift

我在列上有以下值:

DB3-0800-VRET,
DB3-0800-IC,
IB-TZ-850-IB,
O11FS-OB ...

我想从每个值中删除短划线后的最后一部分。 我需要得到以下结果:

DB3-0800-VRET -> DB3-0800,
DB3-0800-IC   -> DB3-0800,
O11FS-OB      -> O11FS

我尝试使用RedShift的SPLIT_PART函数,但是没有运气。 如果有人知道使用正则表达式来选择我需要的部分,我将不胜感激。

1 个答案:

答案 0 :(得分:2)

在Postgres和Redshift中,您都应该可以使用regexp_replace()

select regexp_replace(str, '-[^-]+$', '')