如果在SQL SERVER中截取指定符号? 20feixianxxx]

发布时间:2016-12-7 1:52:51 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"如果在SQL SERVER中截取指定符号? 20feixianxxx]",主要涉及到如果在SQL SERVER中截取指定符号? 20feixianxxx]方面的内容,对于如果在SQL SERVER中截取指定符号? 20feixianxxx]感兴趣的同学可以参考一下。

aaaam,maa●dfsf as★ajkhjc2334ed 32jklkj3e■0sdfsdfds 以上3个字符串,怎么实现只截取●★■ 急需答案!!!!谢谢

Declare @S Varchar(200) Select @S = 'aaaam,maa●dfsf' select substring(@s,(Select patIndex('%●%', @S) ),1) 下同

create table tb (col varchar(20)) insert into tb values('aaaam,maa●dfsf') insert into tb values('as★ajkhjc2334ed') insert into tb values('32jklkj3e■0sdfsdfds') go select col = '●' from tb where charindex('●' , col) > 0 union all  select col = '★' from tb where charindex('★' , col) > 0 union all  select col = '■' from tb where charindex('■' , col) > 0 drop table tb /* col   ----  ● ★ ■ (所影响的行数为 3 行) */

Mark

create table tb (col varchar(30)) insert into tb values('aaaa★m,maa●dfsf') insert into tb values('as★ajkhjc2★334ed') insert into tb values('32jk★lkj3e■0sdfsdfds') go create function getnewstr (@oldstr varchar(100)) returns varchar(100) as begin declare @i int set @i = 1 while @i <= len(@oldstr) if substring(@oldstr, @i, 1) like('[^★●■]') set @oldstr = replace(@oldstr, substring(@oldstr, @i, 1), '') else set @i = @i +1 return @oldstr end go update tb set col = dbo.getnewstr(col) where col like('%[^★●■]%') select * from tb drop table tb drop function getnewstr /* col                             ------------------------------  ★● ★★ ★■ (所影响的行数为 3 行) */

不是一样的问题吗 自定义一函数: create function f_char(@a varchar(50)) returns varchar(50) as begin declare @aa varchar(50) set @aa='' while PATINDEX('%[●★■]%',@a)>0 begin   set @[email protected]+substring(@a,PATINDEX('%[●★■]%',@a),1)   set @a=stuff(@a,1,PATINDEX('%[●★■]%',@a),'') end return @aa end -------------------------- select dbo.f_char(col) from tb

都很强

这个简单啊,网上搜一下就得到答案了.

上一篇:大量数据的模糊搜索问题如何解决 10feixianxxx]
下一篇:如何在SQL SERVER中截取指定字符 20feixianxxx]

相关文章

相关评论