RTRIM功能修剪额外的字符

时间:2018-02-08 08:42:59

标签: oracle function

SELECT RTRIM('CO_CODE_VALUE', 'VALUE') FROM dual; 

结果是CO_CODE_ 但

SELECT RTRIM('CO_CODE_VALUE', '_VALUE') FROM dual;

结果是CO_COD

有人知道为什么吗?

1 个答案:

答案 0 :(得分:3)

来自Oracle documentation

  

RTRIM从char的右端删除所有字符   出现在集合中。

也就是说,在您的情况下,它从右侧开始并删除' _VALUE'中的所有字符,而不是字符串& #39; _value&#39 ;. 例如:

select rtrim('EEEXEEEEEEE', '_VALUE') from dual

给出

EEEX

因为它从右边开始,并删除('V', 'A', 'L', 'U', 'E', 'S', '_')中的所有字符,所以'E'向后发生的所有字符都会向后发送,直到找到不在集合中的字符为止{{1} })