SQL-’08:多个Replace语句是不好的做法/还有另一种写这个查询的
发布时间:2021-01-13 16:32:08 所属栏目: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] (编辑:新余站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- @OrderBy导致java.lang.ClassCastException:antlr.CommonT
- Napster走正道粉墨登场 还会是英雄吗?
- 微软将为Athlon 64处理器推出Windows系统
- sql-server-2005 – 从SQL Server 2008降级到2005
- SQL Server和Oracle的EF和TransactionScope没有升级/跨越到
- 惊人的CS 1.6最新消息
- sql-server – 如何从一个存储过程启动3个存储过程时回滚
- sql-server – 设置varchar(8000)有什么后果?
- 宽广视野 佳能EF 16-35mm f2.8L III镜头
- 如何使用SQL MAX函数获取行的所有字段?
站长推荐
热点阅读