• ベストアンサー

Oracle SQLで文字列操作

始めまして。 VB6でプログラミングをしています。DBはOracle8.16です。 Oracleテーブル上で、カテゴリー別に " 文字列 & ナンバリング " の値をもつレコードを、インサートしていく作業をしています。 ナンバリングの部分の現在の最大値に1足したものを、 新規レコードで値を持たせインサートしてます。 tblA Col1           Col2 1            NA-P1-1 1            NA-P1-2 1            NA-P1-3 1            NA-P1-4 3            NA-P3-1 3            NA-P3-2 3            NA-P3-3 1   この場合、 Select max(Col2) from tblA where Col1 = 1 で現在のCol1=1のMax値(Col2)は NA-P1-4 と取り出せるできるんですが、新規に追加するレコードのCol2の値が NA-P1-5だと取得できる方法はあるでしょうか。 Select Max(col2)+1 ~だと、カラム定義がvarchar2なんで、 当然のようにシステムに怒られました(当然ですが。。) お分かりの方、お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • paz777
  • ベストアンサー率47% (77/163)
回答No.2

こんにちは。 こんなのではだめでしょうか? ------------------------------------------------- SELECT SUBSTR(Col2,1,6) || TO_CHAR(TO_NUMBER(SUBSTR(Col2,7))+1) FROM tblA WHERE Col1 = 1 AND Col2 = (SELECT MAX(Col2) FROM tblA WHERE Col1 = 1); ------------------------------------------------- ではでは・・・

funa1119
質問者

お礼

ありがとうございました。 SUBSTR, TO_NUMBER, 1つ勉強になりました。 無事値も取得でき、助かりました。 またお世話になることがあるかと思いますが、 今後ともよろしくお願いします。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

substr、to_numberを駆使して数値の部分を切り出してください。

すると、全ての回答が全文表示されます。

関連するQ&A