C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 39 を表示中)
■20045 / )  SQLであいまいな文字の検索範囲を広げたい
□投稿者/ はまや (18回)-(2008/06/04(Wed) 20:01:53)

分類:[データベース全般] 

お世話になります

初めてのC#、初めて触るADO.NETで、初めてデータベースアプリケーションを
作り始めて早2ヶ月。最近は得たい結果を得れるようにまで成長しましたが
こうなってくると、「このやり方は正しいのか?」とか「もっと効率の良い
方法があるのでは?」という疑問ばかり浮かんできます。
しかも、それはとても簡単な事だったりします(難しければ最初の方法で満足してしまうので)

そこで、質問なんですが
データベースに電話番号の項目があります。この項目の入力フォーマットは自由です
((0000)11-2222とか0000-11-2222とか0000112222など)
しかし検索するときは、数字のみです。
なので↓こういうSQL文を作ってみました。
SELECT tel FROM dbo.customer WHERE REPLACE(REPLACE(REPLACE(tel, '-', ''), '(', ''), ')', '') LIKE '%1122%'

検索前に括弧とハイフンを消しています。
得たい結果は得られているのですが、どうもすっきりしません。

この方法について
「それしかないので仕方ない」とか「もっと良い方法がある」(出来ればその方法も)という
意見をよろしくお願いします。

ちなみに、「そもそも、入力のフォーマットを統一しろ」とか「REPLACE部分をストアドファンクション化する」
というのは無しの方向でお願いします。

開発環境
WindowsXP(SP2)
VS2005 C#(ADO.NET)
SQL Server 2005 Developer

返信 編集キー/


管理者用

- Child Tree -