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 に答える