寫個函數處理。Create Function F_TEST(@S Nvarchar(2000)) Returns Nvarchar(2000) As Begin Declare @ReturnS Nvarchar(2000) Select @ReturnS = '' While PatIndex(N'%[吖-座]%', @S) > 0 Select @ReturnS = @ReturnS + Substring(@S, PatIndex(N'%[吖-座]%', @S), 1), @S = Stuff(@S, 1, PatIndex(N'%[吖-座]%', @S), '') Return @ReturnS End GO Declare @S Nvarchar(2000) Select @S = N'<font size="3"> <span style="mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">八月的北京,下午两三点钟,还是和往常一样的喧硝和浮躁,这是我这个月第二次来这个城市了,我从酒店的大床上懒洋洋的爬起来,在洗手间胡乱的洗漱一番,就出门了。<img src=dsfssaf.jpg /></span>' Select dbo.F_TEST(@S)
樓主試試這個,我的SQL是繁體,測試不好。
create function get_fun(@s nvarchar(4000)) returns nvarchar(4000) as begin declare @i int select @i=1 while @i<129 begin select @s=replace(@s,char(@i),'' collate chinese_prc_bin) set @i=@i+1 end return @s end
Returns Nvarchar(2000)
As
Begin
Declare @ReturnS Nvarchar(2000)
Select @ReturnS = ''
While PatIndex(N'%[吖-座]%', @S) > 0
Select @ReturnS = @ReturnS + Substring(@S, PatIndex(N'%[吖-座]%', @S), 1), @S = Stuff(@S, 1, PatIndex(N'%[吖-座]%', @S), '')
Return @ReturnS
End
GO
Declare @S Nvarchar(2000)
Select @S = N'<font size="3"> <span style="mso-bidi-font-family: Arial; mso-ascii-font-family: Arial; mso-hansi-font-family: Arial">八月的北京,下午两三点钟,还是和往常一样的喧硝和浮躁,这是我这个月第二次来这个城市了,我从酒店的大床上懒洋洋的爬起来,在洗手间胡乱的洗漱一番,就出门了。<img src=dsfssaf.jpg /></span>'
Select dbo.F_TEST(@S)
returns nvarchar(4000)
as
begin
declare @i int
select @i=1
while @i<129
begin
select @s=replace(@s,char(@i),'' collate chinese_prc_bin)
set @i=@i+1
end
return @s
end
---result
/*
八月的北京,下午两三点钟,还是和往常一样的喧硝和浮躁,这是我这个月第二次来这个城市了,我从酒店的大床上懒洋洋的爬起来,在洗手间胡乱的洗漱一番,就出门了。(所影响的行数为 1 行)
*/
谢谢啊
sql 真是强大..............
我顺便问一下while @i<129循环129次吗?