0

string我需要在 Teradata sql 中选择出现在最后一个下划线之后的那部分列。如果字符串为空白,则必须返回空白。字符串可以有多个下划线。

input             output
abc_def_ghi         ghi 
ab_cd_ef_gh_ij      ij 
ab_cd               cd 
ab_11_22            22

如何写入正则表达式以捕获此类字符串列的结尾部分?

4

1 回答 1

1

instr可以向后搜索,instr(col, '_', -1)找到最后一个下划线:

substr(col, instr(col, '_', -1) +1)

或 RegEx,它搜索最后一个下划线和字符串结尾之间的字符:

regexp_substr(col,'[^_]*$')

如果没有下划线,两种解决方案都将返回完整的字符串。

如果将 RegEx 更改为'_[^_]*$'它,如果没有下划线,则返回 NULL。

于 2020-09-14T19:32:21.683 回答