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

SQL-'08:複数のReplaceステートメントは悪い習慣ですか/このクエリを書く別の方法はありますか?

    ネストされた置換は問題ありませんが、ネストレベルが高くなると、コードの可読性が低下します。置き換える文字が多数ある場合は、以下のテーブル駆動型アプローチのようなよりクリーンなものを選択します。

        declare @Category varchar(25)
        set @Category = 'ABC & DEF/GHI, LMN OP'
        -- nested replace
        select replace(replace(replace(replace(@Category, ' & ', '-'), '/', '-'), ', ', '-'), ' ', '-') as Department 
    
        -- table driven
        declare @t table (ReplaceThis varchar(10), WithThis varchar(10))
        insert into @t
            values  (' & ', '-'), 
                    ('/', '-'),
                    (', ', '-'),
                    (' ', '-')
    
        select  @Category = replace(@Category, ReplaceThis, isnull(WithThis, ''))                       
        from    @t
        where   charindex(ReplaceThis, @Category) > 0;
    
        select @Category [Department]
    


    1. MySQL:InnoDb:セマフォ待機が600秒以上続きました。サーバーを意図的にクラッシュさせます

    2. DataAccessKind.Read presentにもかかわらず、SqlFunctionはコンテキスト接続を開くことができません

    3. 変数のmysql宣言の構文エラー

    4. Oracleで改行文字を入力する方法は?