sql >> データベース >  >> RDS >> Sqlserver

SQL - 一貫性を欠いて格納されている電話番号を照会する

    テーブルを変更できる場合 (SQL Server 2005 であると仮定) 以上)、テーブルに計算列を追加して永続化することができます。この列には、「電話番号」フィールドの「クリーンアップ」表現を保持できます。

    このようなもの:

     create function dbo.CleanPhone(@phone varchar(100))
     returns varchar(100)
     with schemabinding
     as begin
       return
         replace(replace(replace(replace(replace(replace(@phone, ' ', ''), 
                 '-', ''), '(', ''), ')', ''), '-', ''), '+', '')
     end
    

    次に:

    alter table (yourtable)
     add cleanedPhone as dbo.CleanPhone(Phone) persisted
    

    これで、"CleanedPhone" 列には常に電話番号の "クリーンアップ" バージョンが含まれていました。常に 555123456 のようになります。

    これは PERSISTED フィールドであるため、クエリを実行してもパフォーマンスが低下することはありません。値が作成されてテーブルに格納され、通常の列として使用できます。

    これで、非常に簡単にクエリを実行できるようになりました。

    マーク



    1. MySQL Auto Incrementはどのように機能しますか?

    2. データベースプロバイダータイプごとに許可されるパラメーターの最大数はいくつですか?

    3. 作業フォルダを使用したソース管理データベース

    4. Python-MySQLインデックスの自動化:パラメータの受け渡し