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]
原文地址:https://www.jb51.cc/mssql/83569.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。