您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
三六零分类信息网 > 果洛分类信息网,免费分类信息发布

关于SQL截取字符串函数介绍

2025/12/19 16:45:45发布34次查看
本文章收藏了msssql中的的常用的几个字符串截取函数,下面分别举例说明,有需要的朋友参考一下。
a.截取从字符串左边开始n个字符
 代码如下 复制代码
   declare @s1 varchar(100)
   select @s1='http://www.111cn.net'
   select left(@s1,4)
   ------------------------------------
   显示结果: http
b.截取从字符串右边开始n个字符(例如取字符www.163.com)
代码如下 复制代码
declare @s1 varchar(100)
   select @s1='http://www.163.com'
   select right(@s1,11) 
   ------------------------------------
   显示结果: www.163.com
c.截取字符串中任意位置及长度(例如取字符www)
 代码如下 复制代码
   declare @s1 varchar(100)
   select @s1='http://www.111cn.net'
   select substring(@s1,8,3) 
   ------------------------------------
   显示结果: www
以上例子皆是已知截取位置及长度,下面介绍未知位置的例子
2.截取未知位置的函数
a.截取指定字符串后的字符串(例如截取http://后面的字符串)
   方法一:
 代码如下 复制代码
   declare @s1 varchar(100)
   select @s1='http://www.111cn.net' 
   select substring(@s1,charindex('www',@s1)+1,len(@s1))
   /*此处也可以这样写:select substring(@s1,charindex('//',@s1)+2,len(@s1))*/
   ------------------------------------
   显示结果: www.163.com
需要注意:charindex函数搜索字符串时,不区分大小写,因此charindex('www',@s1)也可以写成charindex('www',@s1)
   方法二:(与方法一类似)
代码如下 复制代码
declare @s1 varchar(100)
   select @s1='http://www.111cn.net' 
   select substring(@s1,patindex('%www%',@s1)+1,len(@s1))
   --此处也可以这样写:select substring(@s1,patindex('%//%',@s1)+2,len(@s1))
   ------------------------------------
   显示结果: www.163.com
函数patindex与charindex区别在于:前者可以参数一些参数,增加查询的功能
   方法三:
 代码如下 复制代码
   declare @s1 varchar(100)
   select @s1='http://www.111cn.net' 
   select replace(@s1,'http://','')
   ------------------------------------
   显示结果: www.163.com
利用字符替换函数replace,将除需要显示字符串外的字符替换为空
   方法四:
 代码如下 复制代码
   declare @s1 varchar(100)
   select @s1='http://www.111cn.net' 
   select stuff(@s1,charindex('http://',@s1),len('http://'),'')
   ------------------------------------
   显示结果: www.163.com
函数stuff与replace区别在于:前者可以指定替换范围,而后者则是全部范围内替换
   b.截取指定字符后的字符串(例如截取c:windowstest.txt中文件名)
     与a不同的是,当搜索对象不是一个时,利用上面的方法只能搜索到第一个位置
   方法一:
 代码如下 复制代码
   declare @s1 varchar(100)
   select @s1='c:windowstest.txt'
   right(@s1,charindex('',reverse(@s1))-1)
   -------------------------------------
   显示结果: text.txt
利用函数reverse获取需要截取的字符串长度
果洛分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product