0

我需要对 Oracle 查询中结果集中的最后 7 个字符进行 RTRIM。这 7 个字符可以是任何字符;空格、字母数字等...而且我不知道任何值的确切长度。

所以例如我想运行这样的东西

 SELECT RTRIM (COl_A, (SELECT LENGTH (COL_A)-7) FROM TABLE_ONE;

或替换等效项

SELECT REPLACE(COL_A, (SELECT LENGTH (COL_A)-7 FROM TABLE_ONE),'');

我可能需要对 SUBSTRING 做些什么吗?

我知道如何删除/替换特定字符,但在处理未知字符时遇到了麻烦。我见过一些类似问题的例子,但它们似乎不必要地复杂......或者这是否需要比我认为的更深入的解决方案?

一如既往地提前感谢您的建议或提示。

4

2 回答 2

7

您正在寻找substr功能。

select substr(col_a, 1, length(col_a) - 7) from table_one
于 2012-05-22T20:02:35.453 回答
1

实际上,正确的解决方案是:

select substr(col_a, 1, (case when length(col_a) < 7 then 0 else length(col_a) - 7 end) from table_one

一般来说,您需要考虑长度小于 7 时会发生什么。

于 2012-05-22T20:07:46.493 回答