ITPub博客

SQL Server中字符串处理函数

原创 SQL Server 作者:lhrbest 时间:2018-06-21 16:10:01 0 删除 编辑

SQL Server中截取字符串常用函数



截取字符串中的最后一个斜杠后的所有字符:

 

SELECT A.PIC_URL,

RIGHT(A.PIC_URL,(CHARINDEX('/',REVERSE(A.PIC_URL))-1))

FROM DBO.TXT_PIC A;




SQL Server 中截取字符串常用的函数:

1.LEFT ( character_expression , integer_expression )
函数说明:LEFT ( '源字符串' , '要截取最左边的字符数'  )
返回从字符串左边开始指定个数的字符
select LEFT('SQL_Server_2008',4 );
返回结果:SQL_


2.RIGHT ( character_expression , integer_expression )
函数说明:RIGHT ( '源字符串' , '要截取最右边的字符数'  )
返回字符串中从右边开始指定个数的 integer_expression 字符
select RIGHT('SQL_Server_2008',4 );
返回结果:2008


3.SUBSTRING ( character_expression , start , length )
函数说明:SUBSTRING ( '源字符串' , '截取起始位置(含该位置上的字符)' , '截取长度' )
返回字符、binary、text 或 image 表达式的一部分
select SUBSTRING('SQL_Server_2008',5 ,6);
返回结果:Server



sql server中截取字符串的常用函数
我们如果要在sql server中,使用截取字符串的方法要怎样使用呢?

sql server提供了3个常用截取字符串方法,LEFT()、RIGHT()、SUBSTRING()

复制代码
/******  Sql Server中截取字符串的常用方法  ******/

--1、LEFT()方法---
--函数说明---
--1)语法:LEFT(character,integer)  
--2)介绍:参数1:要截取的字符串,参数2:截取字符个数
--3)使用:
--返回从字符串左边开始指定个数的字符--
select LEFT('SqlServer_2008',3)
--4)返回:Sql

--1、RIGHT()方法---
-- right()函数说明---
--1)语法:RIGHT(character,integer)  
--2)介绍:参数1:要截取的字符串,参数2:截取字符个数
--3)使用:
--返回从字符串右边开始指定个数的字符--
select LEFT('SqlServer_2008',4)
--4)返回:2008

--1、SUBSTRING()方法---
-- substring()函数说明---
--1)语法:SUBSTRING(character,start,length)  
--2)介绍:参数1:要截取的字符串,参数2:开始截取的下标,参数3:截取的字符长度
--3)使用:
--返回从字符串中间的字符--
select SUBSTRING('SqlServer_2008',4,6)
--4)返回:Server
复制代码
实例如下:

复制代码
--截取字符串左边3个字符--
select LEFT('Welcome to China!',7) as 结果1
--截取字符串右边4个字符--
select RIGHT('Welcome to China!',6) as 结果2
--截取字符串中间6个字符(第二个从哪个字符下标开始)
select SUBSTRING('Welcome to China!',9,2) as 结果3

实例结果:

实例结果:



SQL Server中判断字符串出现的位置及字符串截取

首先建一张测试表:

create table teststring(name nvarchar(100));
insert into teststring
values
('张三,李四,王五,马六,萧十一,皇宫');

1.判断字符串中某字符(字符串)出现的次数,第一次出现的位置最后一次出现的位置:

查看’,’出现的次数

select LEN(name)-LEN(REPLACE(name,',','')) from teststring;

查看’,’第一次出现的位置:

select CHARINDEX(',',name) from teststring;

查看’,’最后一次出现的位置:

select len(name)-(CHARINDEX(',',REVERSE(name))-1) from teststring;

2.取出以’,’分隔开的字符(串),这个例子中就是’张三’、’李四’等

这是有规律的,首先应该想到有没有特定的系统函数实现,好像没有,其次就应该想到循环了。

当我把’张三’取出后,怎样把’张三,’去掉呢?

取’张三’不难,

select SUBSTRING(name,1,CHARINDEX(',',name)-1) from teststring;

如何把’张三,’去掉呢?开始我也不知道,baidu、google啊,关键字sql、split吧,总之我也是搜的

select STUFF(name,1,CHARINDEX(',',name),'') from teststring;

好像用replace也能实现

select REPLACE(name,substring(name,1,CHARINDEX(',',name)),'') from teststring;

那现在就差循环了,我很少写存储过程或函数的,语法都不记得,用的时候现查(经常用就记得了),我都写匿名的存储过程,哈哈

create table teststring2(name nvarchar(100));

declare @name nvarchar(100);
select @name= name from teststring;
while(CHARINDEX(',',@name)<>0)
begin
insert into teststring2 select SUBSTRING(@name,1,CHARINDEX(',',@name)-1);
set @name=STUFF(@name,1,CHARINDEX(',',@name),'');
set @i=@i+1;
end
insert into teststring2
select @name

 

select * from teststring2就可以看到了。

这只是表中只有一个字段的,如果多的话,用表变量应该就可以了。

表变量我也不会,之前用过一次,用过就忘记了,偶尔用一次!知道有这个东西就好了,至少遇到问题思考时能想到这东西。

 

以上都是基于我最近做公司考勤时候用的,大概就是php的网页,姓名文本框里需要输入用户姓名,但是一次输入一个,得添加多次,如果我把后台数据库姓名这字段设置大些,一次就可以输入多个姓名,但姓名与姓名之间用逗号隔开,我就可以在数据库里处理了。







小麦苗课程

小麦苗课堂开课啦,如下是现有的课程,欢迎咨询小麦苗:


课程名称

课时

上课时间(可根据情况调整)

价格

OCP(从入门到专家)

每年1期,35课时左右/

每周一、周三、周四、周六

20:00-22:00

1588

OCM认证

每年N期,9课时/

每周二、周五

20:00-22:00

22888

高可用课程(rac+dg+ogg)

每年1期,20课时左右/

每周一、周三、周四、周六

20:00-22:00

1888

Oracle初级入门

每年1期,15课时左右/

每周一、周三、周四、周六

20:00-22:00

800

Oracle健康检查脚本

可微信或微店购买。

88

Oracle数据库技能直通车

包含如下3个课程:

①《11g OCP网络课程培训》(面向零基础) 价值1600

②《11g OCM网络班课程培训》(Oracle技能合集)价值10000+

③《RAC + DG + OGG 高可用网络班课程》 价值2000

以上3个课程全部打包只要5888,只要5888所有课程带回家,终身指导!所有课程都是在线讲课,不是播放视频,课件全部赠送!

注意:以上OCP和OCM课程只包括培训课程,不包括考试费用。

5888

注意:

1、每次上课前30分钟答疑。

2、OCM实时答疑,提供和考试一样的练习模拟环境,只要按照老师讲的方式来练习,可以保证100%通过。

3、授课方式:YY语音网络直播讲课(非视频) + QQ互动答疑 + 视频复习。其中,OCM在上海开设现场班。

4、OCP课时可以根据大家学习情况进行增加或缩减。

5、以上所有课程均可循环听课。

6、12c OCM课程私聊。

7、Oracle初级入门课程,只教大家最实用+最常用的Oracle操作维护知识。

8、以上所有课程,可以加小麦苗微信(lhrbestxh)或QQ(646634621)详聊,优惠多多。
 


培训项目

连接地址

DB笔试面试历史连接

http://mp.weixin.qq.com/s/Vm5PqNcDcITkOr9cQg6T7w

OCP培训说明连接

https://mp.weixin.qq.com/s/2cymJ4xiBPtTaHu16HkiuA

OCM培训说明连接

https://mp.weixin.qq.com/s/7-R6Cz8RcJKduVv6YlAxJA

高可用(RAC+DG+OGG)培训说明连接

https://mp.weixin.qq.com/s/4vf042CnOdAD8zDyjUueiw

OCP最新题库解析历史连接(052)

http://mp.weixin.qq.com/s/bUgn4-uciSndji_pUbLZfA

微店地址

https://weidian.com/s/793741433?wfr=c&ifr=shopdetail


● 网名:小麦苗

● QQ:646634621

● QQ群:618766405

● 我的博客:http://blog.itpub.net/26736162/abstract/1/

● 微信公众号:xiaomaimiaolhr,二维码如下:

wps9E88.tmp 

● 小麦苗的微信二维码如下所示,加我时请备注相关信息:

wps9E89.tmp 

● 我的微店地址:https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

● 出版的数据库类丛书:http://blog.itpub.net/26736162/viewspace-2142121/

● 博客链接:http://blog.itpub.net/26736162/abstract/1/

● 小麦苗课堂资料(视频+讲课资料):https://share.weiyun.com/5fAdN5m



 


 

7、Oracle初级入门课程,只教大家最实用+最常用的Oracle操作维护知识。





About Me

.............................................................................................................................................

● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除

● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文博客园地址:http://www.cnblogs.com/lhrbest

● 本文pdf版、个人简介及小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/

● 数据库笔试面试题库及解答:http://blog.itpub.net/26736162/viewspace-2134706/

● DBA宝典今日头条号地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

.............................................................................................................................................

● QQ群号:230161599(满)、618766405

● 微信群:可加我微信,我拉大家进群,非诚勿扰

● 联系我请加QQ好友646634621,注明添加缘由

● 于 2018-06-01 06:00 ~ 2018-06-31 24:00 在魔都完成

● 最新修改时间:2018-06-01 06:00 ~ 2018-06-31 24:00

● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

.............................................................................................................................................

小麦苗的微店https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麦苗出版的数据库类丛书http://blog.itpub.net/26736162/viewspace-2142121/

小麦苗OCP、OCM、高可用网络班http://blog.itpub.net/26736162/viewspace-2148098/

.............................................................................................................................................

使用微信客户端扫描下面的二维码来关注小麦苗的微信公众号(xiaomaimiaolhr)及QQ群(DBA宝典),学习最实用的数据库技术。

小麦苗的微信公众号小麦苗的DBA宝典QQ群2《DBA笔试面宝典》读者群小麦苗的微店

   小麦苗的微信公众号      小麦苗的DBA宝典QQ群2     《DBA笔试面试宝典》读者群       小麦苗的微店

.............................................................................................................................................


DBA笔试面试讲解群
《DBA宝典》读者群 欢迎与我联系



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26736162/viewspace-2156459/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
QQ:646634621| 网名:小麦苗| 微信公众号:xiaomaimiaolhr| 11g OCM| QQ群:618766405 微信群:私聊| 《数据库笔试面试宝典》作者| OCP、OCM、高可用(RAC+DG+OGG)网络班开讲啦,有需要的小伙伴可以私聊我。

注册时间:2012-09-23

  • 博文量
    1115
  • 访问量
    7019147