加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

SQL-’08:多个Replace语句是不好的做法/还有另一种写这个查询的

发布时间:2021-01-13 01:40:07 所属栏目:编程 来源:网络整理
导读: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]

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读