SQL-’08:多个Replace语句是不好的做法/还有另一种写这个查询的
发布时间:2021-01-12 23:20:35  所属栏目:MsSql教程  来源:网络整理 
            导读:Select Distinct REPLACE(REPLACE(REPLACE(REPLACE(Category,' ','-'),'/',',' ','-') AS Department From Inv WITH(NOLOCK) 我很想知道因为我是一名小型ETL工程师,并希望养成良好的习惯. 显然,在许多情况下,这可能会变得更长. 解决方法 嵌套替换很好,但随着
                
                
                
            
                        Select 
Distinct 
    REPLACE(REPLACE(REPLACE(REPLACE(Category,' & ','-'),'/',',' ','-') AS Department 
From 
     Inv WITH(NOLOCK) 
 我很想知道因为我是一名小型ETL工程师,并希望养成良好的习惯. 显然,在许多情况下,这可能会变得更长. 解决方法嵌套替换很好,但随着嵌套级别的增加,代码的可读性下降.如果我要替换大量字符,我会选择像下表驱动方法那样更清洁的东西.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]                        (编辑:泰州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  

