SQL-’08:多个Replace语句是不好的做法/还有另一种写这个查询的
发布时间:2021-01-13 00:27:37 所属栏目: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] (编辑:百科站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 将行转换为SQL Server 2008 R2中的列
- sql-server – 与varchar(255)相比,使用varchar(5000)会不好
- sql-server – 如何在SQL Server 2008中分配整个Active Dir
- sql server 2012 FileTable有什么些功能?
- sql – 在oracle中更新多个嵌套表中的多个记录
- SQL主键 – 是否有必要?
- sql-server – 如何编写SQL Server作业的脚本以进行迁移
- sql serve中page结构怎么理解?一文带你看明白page结构
- sql-server-2005 – 移动SQL 2000 32位数据库
- SQL order by子句是否保证稳定(按标准)
站长推荐
热点阅读

