sql语句学习笔记(6)-常用字符串操作函数

这些函数在系统函数可以找到。下面是我练习时写的代码,包含了常用的字符串操作函数

/*********************************
常用字符串函数:sql中没有数组这一说
*********************************/
--int charindex('要找的字符串','源字符串',开始位置),获取字符串中指定字符串的位置
declare @str varchar(50)
set @str='江苏|湖北|湖南|山东|山西|河南|河北'
print '原始输入数据:'+@str
print Charindex('湖',@str,1)--输出为4(字符串操作中的起始位置是1而不是0)

 

--区别于charindex,是一种模式匹配
--参考资料http://msdn.microsoft.com/zh-cn/library/ms190184.aspx
declare @str varchar(50)
set @str='江苏|湖北|湖南|山东|山西|河南|河北'
print '原始输入数据:'+@str
print patindex('%湖%',@str)--输出4

 

--string substring('源字符串',起始位置,长度),从源字符串中指定位置开始获取指定长度的字符串
declare @str varchar(50)
set @str='江苏|湖北|湖南|山东|山西|河南|河北'
print '原始输入数据:'+@str
print substring(@str,1,2)--打印出‘江苏’

 

--string replace(‘源字符串’'要被替换的字符串',‘要替换的字符串’)
declare @str varchar(50)
set @str='江苏|湖北|湖南|山东|山西|河南|河北'
print '原始输入数据:'+@str
print replace(@str,'|','+')--将源字符串中的-换成了+

 

--int len('源字符串'):求指定字符串的长度
declare @str varchar(50)
set @str='江苏|湖北|湖南|山东|山西|河南|河北'
print '字符串的长度为:'+convert(varchar(4),len(@str))--输出20

 

--string upper('源字符串'):转换成大写,string lower('源字符串'):转换成小写
declare @str varchar(10)
set @str='Sql Server'
print upper(@str)--输出为SQL SERVER
print lower(@str)--输出为sql server

--string ltrim('源字符串'):返回去掉前导空格后的字符串
declare @str varchar(10)
set @str='  Sql Server'
print ltrim(@str)--输出:Sql Server

 

--string left('源字符串',指定长度):从源字符串中最左边返回指定长度的字符串
--string right('源字符串',指定长度):从源字符串中最右边放边返回指定长度的字符串
declare @str varchar(50)
set @str='江苏|湖北|湖南|山东|山西|河南|河北'
print left(@str,5)--输出:江苏|湖北
print right(@str,5)--输出:河南|河北

 

--string reverser('源字符串'):反序字符创
declare @str varchar(50)
set @str='江苏|湖北|湖南|山东|山西|河南|河北'
print reverse(@str)--输出:北河|南河|西山|东山|南湖|北湖|苏江

 

--int difference('源字符串1',‘源字符串2’),返回2个字符串的相似度,级别从0-4一次递增
declare @str varchar(50),@str2 varchar(50)
set @str='cd'
set @str2='abced'
print difference(@str,@str2)--输出2

 

--string str(float,int int):返回有数值数据转化成了字符串,其中float为数值表达式,
--后面2个int型数据分别为:长度和小数位数
declare @num float
set @num=12356.654321478
print str(@num,7,1)--输出:123456.7(四舍五入)

 

--string stuff('源字符串',开始位置,长度,'替换表达式')
--从指定位置开始(下一个才被替换,开始位置不被替换),使用替换字符串
--替换掉源字符串中指定长度的内容
declare @str varchar(50)
set @str='江苏|湖北|湖南|山东|山西|河南|河北'
print stuff(@str,3,16,'pk')--输出江苏pk河北

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值