• ベストアンサー

検索条件について

以下の項目があります。 CD_NAME NUMBER(6) 値:必ず5桁以上は入っています。 上記項目の値に対して5桁目と6桁目が'11'のレコードを取得したい場合にはどういった条件になるのでしょうか? (説明が下手ですいません。) □□□□□□ ↑↑ 5桁目と6桁目の例 12345 →1 123456→12

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

  • ベストアンサー
回答No.1

where trunc(CD_NAME / 10000)=11 で良いんじゃないですか?

toshi_200578
質問者

お礼

回答ありがとうございます。 No.4で正常に動作したのでお礼を書こうと思ったんですけど上記で単純にできました。 ありがとうございました。

その他の回答 (3)

回答No.4

#3の訂正です。 where substrb(to_char(CD_NAME,'FM000000'),1,2)='11' または where substrb(to_char(CD_NAME,'000000'),2,2)='11' です。

回答No.3

>#2 >where substrb(to_char(CD_NAME,'000000'),1,2)= '11'; >これだと、 > 112345 が選択され、11234は選択されません。 質問内容からすれば、11234は、選択される必要はないと思いますが.. 貴殿の条件では、112345も抽出されないはずです。 部分文字列比較するなら、 where substrb(to_char(CD_NAME,'TM000000'),1,2)='11' または where substrb(to_char(CD_NAME,'000000'),2,2)='11' としないと、符号用の1桁が邪魔をして正しい抽出がされません。

  • shangzi
  • ベストアンサー率47% (17/36)
回答No.2

5桁目と6桁目が11と言うのがよく分かりませんでしたが、 こう言うことかなぁ… where substrb(to_char(CD_NAME,'000000'),1,2)= '11'; これだと、  112345 が選択され、11234は選択されません。 後者も選択したいのであれば、 フォーマットの指定部分を外せば良いかと思います。 where substrb(to_char(CD_NAME),1,2) = '11'; これだと、  112345 も 11234も選択されます。

toshi_200578
質問者

お礼

回答ありがとうございます。 112345のみ取得したかったです。 ただ、項目が数値ですので仮に値が1のデータを取得したいときなどの為に数値変換しなくてはなりません。 こういう方法もあることを参考にしたいと思います。 ありがとうございました。