|
分類:[データベース全般]
お世話になります
初めての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
|