SQLについて

解決


fumofumo  2008-12-10 15:59:14  No: 141038  IP: 192.*.*.*

VBの質問ではなくSQLの質問で大変申し訳ないのですが
ご教授願います。

環境:WindowsXP SP2 ,VB2005 ,Oracle 9i

SQLの SELECT 句であるテーブルのフィールド(CHAR型)
の中から SUBSTR 関数を使用して1文字抽出した文字が
数値なのかそれ以外の文字なのかを判定する
ことはできますか?

SQLのいろんなサイトを調べましたがわかりません。
よろしくお願いします。

編集 削除
魔界の仮面弁士  2008-12-10 18:50:14  No: 141039  IP: 192.*.*.*

> VBの質問ではなくSQLの質問で大変申し訳ないのですが
VB と無関係の話題が板違いである事は、理解されているのですよね。
何故、Oracle 向けのコミュニティを利用されないのでしょうか?


> 数値なのかそれ以外の文字なのかを判定する
その 1 文字が "0"〜"9" のいずれかであるかどうかを
判定すれば良いのですよね。

ここは VB のコミュニティなので、VB側で判定するのであれば、
  Dim x As Char
    :
  If x Like "[0-9]" Then
などでしょうかね。

後は、IsNumeric やこの辺という手もありますが…。
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=2857224&SiteID=7

> SQLのいろんなサイトを調べましたがわかりません。
Oracle 側で判定するなら正規表現と言いたい所ですが…
今回は 9i という事なので、
  INSTR('0123456789', 対象文字)
の結果が 0 か 0 以外かで判定するとか。

編集 削除
fumofumo  2008-12-11 08:01:50  No: 141040  IP: 192.*.*.*

魔界の仮面弁士さんアドバイスありがとうございます。

>VB と無関係の話題が板違いである事は、理解されているのですよね。
>何故、Oracle 向けのコミュニティを利用されないのでしょうか?

VB と無関係なのは分かっていまいしたがSQLの質問をどこでしたら
よいかわからず、諸事情により適切なコミュニティを探す時間が
なかったもので、当サイトでいつもアドバイスをいただいている
方ならSQLにも精通されてると思い質問でさせていだだきました。
誠に申し訳ありませんでした。
以後こういった質問は Oracle 向けのコミュニティでします。

>INSTR('0123456789', 対象文字)
>の結果が 0 か 0 以外かで判定するとか。

INSTR 関数で解決しました。
文字かどうかを判定することばかりにとらわれて
違う方向からのアプローチが出来ていませんでした。
この経験を生かしてより柔軟に対応できるようになって
いきたい次第です。

この度は板違いな質問誠に申し訳ありませんでした。
又、板違いな質問に丁寧にアドバイスいただき
ありがとうございました。

編集 削除