我需要在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做些什么?
我知道如何删除/替换特定的字符,但在处理未知字符时我遇到了麻烦。我已经看到了一些类似问题的例子,但它们似乎不必要地复杂......或者这需要比我想象的更深入的解决方案吗?
一如既往地感谢您的建议或提示。
答案 0 :(得分:7)
您正在搜索substr
功能。
select substr(col_a, 1, length(col_a) - 7) from table_one
答案 1 :(得分:1)
实际上,正确的解决方案是:
select substr(col_a, 1, (case when length(col_a) < 7 then 0 else length(col_a) - 7 end) from table_one
一般而言,您可能需要考虑长度小于7时会发生什么。