假设我有一个类似'aaa_bbb_ccc_ddd_eee'的字符串。
如何使用红移将所有内容留在第三个下划线_之前。
因此,我需要获取'aaa_bbb_ccc'。
aaa_bbb_ccc_ddd_eee => aaa_bbb_ccc
发布于 2020-08-22 00:00:20
我认为这将会起作用:
select regexp_substr(string, '^[^_]+_[^_]+_[^_]+')Here是一个db<>fiddle。这使用了MySQL,因为Postgres没有regexp_substr() (它使用regexp_match()),但是Redshift和MySQL都有。
发布于 2020-08-22 00:15:58
您也可以使用split_part来实现这一点
select split_part(txt,'_',1) ||'_'|| split_part(txt,'_',2)||'_'|| split_part(txt,'_',3)使用left和charindex的细微变化
select left(txt,charindex(split_part(txt,'_',4),txt)-2)https://stackoverflow.com/questions/63526194
复制相似问题