天天看点

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

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

--int charindex('要找的字符串','源字符串',开始位置),获取字符串中指定字符串的位置

declare @str varchar(50)

set @str='江苏|湖北|湖南|山东|山西|河南|河北'

print '原始输入数据:'[email protected]

print Charindex('湖',@str,1)--输出为4(字符串操作中的起始位置是1而不是0)

--区别于charindex,是一种模式匹配

--参考资料http://msdn.microsoft.com/zh-cn/library/ms190184.aspx

declare @str varchar(50)

set @str='江苏|湖北|湖南|山东|山西|河南|河北'

print '原始输入数据:'[email protected]

print patindex('%湖%',@str)--输出4

--string substring('源字符串',起始位置,长度),从源字符串中指定位置开始获取指定长度的字符串

declare @str varchar(50)

set @str='江苏|湖北|湖南|山东|山西|河南|河北'

print '原始输入数据:'[email protected]

print substring(@str,1,2)--打印出‘江苏’

--string replace(‘源字符串’'要被替换的字符串',‘要替换的字符串’)

declare @str varchar(50)

set @str='江苏|湖北|湖南|山东|山西|河南|河北'

print '原始输入数据:'[email protected]

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河北