繁体   English   中英

用于替换最后一次出现的输入数据的 Postgres 查询

[英]Postgres Query to replace the last occurence of input data

输入:

场地
ABC_PKG_T
ABC_T_PKG
ABC_PKG_T2
abc_base_t

Output:

场地
ABC_PKG
ABC_T_PKG
ABC_PKG_T2
abc_base

我使用了以下逻辑:

REGEXP_REPLACE(TRIM(field), '(.*)\_T|_t', '\1' ) 

除了我得到的第三个 output 值“ ABC_PKG2 ”之外,它可以很好地获取大部分 output 值。

你能建议任何其他逻辑,以便我能正确地得到 ABC_PKG_T2 的结果吗?

您需要使用$将表达式锚定在字符串的末尾:

regexp_replace(the_column, '_t\s*$', '', 'i')

\s*还将删除_t后面的任何尾随空格,而'i'使这种情况不区分大小写,因此它将删除_T_t

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM