2011-11-29 13 views
0

数日以内に試験を受けているので、電話番号が与えられている従業員テーブルを持っていると仮定して、すべての可能なテストを中途半端に実行しようとしています。このフォームabc.edf.ghi(これらはすべて文字列ではありません)、どのように電話番号の従業員をリストすることができますかedf?数値なので部分文字列関数を使用できるとは思いませんか?また、私はC++のような合計数で除算を実行することはできませんので(100除算、100など)、私の質問があまりにもナンセンス場合は申し訳ありません、助けてください。私は練習のためだけに必要です。データベースから電話番号に基づいて選択

答えて

1

Oracle sayssubstrは文字列のみですが、NUMBERデータ型として定義されている列にはsubstrを使用できます。 (PHONENUMBERCOLUMNのフォーマットはabc.edf.ghiであることを想定)

select * from YOURTABLE where substr(PHONENUMBERCOLUMN,5,3)='edf'

注:データ型がNUMBER以外の場合それは、'edf'なく、edfであるべきです。列のデータ型が数値か文字列(char、varchar、varchar2など)であるかどうかにかかわらず、常に一重引用符を使用してください。

0

MySQLでは、SUBSTRING()関数を試すことができます。電話番号が表示されている形式の場合は、INTではなくvarcharでなければなりません。 Oracleの場合

は、電話番号がであることを考えるのミスをしないでくださいsubstr()

+0

これは類似しているため、substrはいですか? –

+0

@dato thats correct –

+0

となる範囲substr(phonenumber、5,8)か試してみましたが動作しません –

1

を使用しています。電話番号は、通常は主に数字で構成される文字列です。

いくつかのゼロから始まる電話番号を想像してください。数字として保存すると、重要であり差が出るかもしれない間に切り捨てられます。それを文字列として格納することで安全になります。

さらに、これを文字列として保存すると、SUBSTRなどの名前の関数を使用して、同じ問題を解決することができます。

関連する問題