select replace(replace(cast(字段名 as varchar(8000)),'民进党','*'),'找死','*') from BBSTopic
如果“字段名”的长度不超过8000,可以这样 select replace(replace(cast(字段名 as varchar(8000)),'民进党','*'),'找死','*') from BBSTopic 2005以后的版本还可以转成varchar(max)
我看问题好象出在外面的replace
select replace(replace(cast(字段名 as varchar),'民进党','*'),'找死','*') from BBSTopic select replace(replace(cast(字段名 as varchar(8000)),'民进党','*'),'找死','*') from BBSTopic
create table #1 (id int identity(1,1),aa ntext) insert #1 values('民进党laskdfjls adfk 找死lsajdf') insert #1 values('wqerwqqw民进党laskdfjls adfk 找死lsajdf') insert #1 values('wqerwqer民进党laskdfjls adfk 找死wqerlsajdf')select *, replace(replace(cast(aa as nvarchar(max)),'民进党','*'),'找死','*') from #1 id aa ----------- ----------------------------------------------- 1 民进党laskdfjls adfk 找死lsajdf *laskdfjls adfk *lsajdf 2 wqerwqqw民进党laskdfjls adfk 找死lsajdf wqerwqqw*laskdfjls adfk *lsajdf 3 wqerwqer民进党laskdfjls adfk 找死wqerlsajdf wqerwqer*laskdfjls adfk *wqerlsajdf(3 row(s) affected)
select replace(replace(cast(字段名 as varchar(8000)),'民进党','*'),'找死','*') from BBSTopic
2005以后的版本还可以转成varchar(max)
insert #1 values('民进党laskdfjls adfk 找死lsajdf')
insert #1 values('wqerwqqw民进党laskdfjls adfk 找死lsajdf')
insert #1 values('wqerwqer民进党laskdfjls adfk 找死wqerlsajdf')select *, replace(replace(cast(aa as nvarchar(max)),'民进党','*'),'找死','*') from #1
id aa
----------- -----------------------------------------------
1 民进党laskdfjls adfk 找死lsajdf *laskdfjls adfk *lsajdf
2 wqerwqqw民进党laskdfjls adfk 找死lsajdf wqerwqqw*laskdfjls adfk *lsajdf
3 wqerwqer民进党laskdfjls adfk 找死wqerlsajdf wqerwqer*laskdfjls adfk *wqerlsajdf(3 row(s) affected)