如何在SQL SERVER中截取指定字符 20feixianxxx]

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

aaaam,maa●dfsf ass★ajkhj2334ed 32jkle■0sdfsdfds 如果只保留●  ★  ■?? 请帮帮忙!!!

--查询 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 行) */

--更改 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 update tb set col = '●' where charindex('●' , col) > 0 update tb set col = '★' where charindex('★' , col) > 0 update tb set col = '■' where charindex('■' , col) > 0 select * from tb drop table tb /* col   ----  ● ★ ■ (所影响的行数为 3 行) */

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 行) */

老问同样的问题?不能解决吗

将指定字符串作参数,修改函数如下: alter function f_char(@a varchar(50),@str varchar(20)) returns varchar(50) as begin declare @aa varchar(50) set @aa='' while PATINDEX('%[[email protected]+']%',@a)>0 begin   set @[email protected]+substring(@a,PATINDEX('%[[email protected]+']%',@a),1)   set @a=stuff(@a,1,PATINDEX('%[[email protected]+']%',@a),'') end return @aa end -------------------------- select dbo.f_char(col,'●★■') from tb --------- ● ★ ■ ★■●

declare c char(100); set c=aaaam,maa●dfsf ass★ajkhj2334ed 32jkle■0sdfsdfds set c=replace(left(c,0,charindex(c,★)),'')  依次類推

mark

哎,这个问题都问了多少遍了啊

charindex,replace这两个函数我需要学习

接分是王道!

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


上一篇:如果在SQL SERVER中截取指定符号? 20feixianxxx]
下一篇:高手请指点:有谁建过内存实时数据库 20ziyuan_1016]

相关文章

相关评论

本站评论功能暂时取消,后续此功能例行通知。

一、不得利用本站危害国家安全、泄露国家秘密,不得侵犯国家社会集体的和公民的合法权益,不得利用本站制作、复制和传播不法有害信息!

二、互相尊重,对自己的言论和行为负责。

好贷网好贷款