以下の項目があります。
CD_NAME NUMBER(6)
値:必ず5桁以上は入っています。

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

このQ&Aに関連する最新のQ&A

A 回答 (4件)

where trunc(CD_NAME / 10000)=11



で良いんじゃないですか?
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/15 15:13

#3の訂正です。


where substrb(to_char(CD_NAME,'FM000000'),1,2)='11'
または
where substrb(to_char(CD_NAME,'000000'),2,2)='11'

です。
    • good
    • 0

>#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桁が邪魔をして正しい抽出がされません。
    • good
    • 0

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も選択されます。
    • good
    • 0
この回答へのお礼

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

お礼日時:2005/04/15 15:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング

おすすめ情報