sqlserver提供了一系列字符串处理函数:substring、left、right、len、charindex、patindex、replace、replicate、stuff、upper、lower、rtrim、ltrim等函数。
substring函数用于从字符串中提取子串,从指定位置开始(start),具有特定长度(length)的子字符串。substring(string,strat,length)
eg: select substring(‘abcde‘,1,3)返回子字符串‘abc‘
select substring(‘abcde‘,8)返回字符串‘abcde‘(如果length长度大于字符串长度,则返回原字符串)
left和right函数返回输入字符串从左或右开始的n个字符left(sting,n) / right(string,n)
eg: select left(‘abcde‘,3)返回字符串‘abc‘
select right(‘abcde‘,3)返回字符串‘cde‘
len和datalength函数分别返回字符串中的字符数以及字符串中的字节数len(string) / datalength(string)
eg: select len(‘and‘)返回字符数3
select datalength(N‘abc‘)返回字节数6
select len(‘ abc ‘)返回5,无论有多少个连续空格,均计算一次
注:普通字符,字符串的字符数和字节数是一致的,这是因为一个字符只占一个字节的存储空间
Unicode字符,字符串的字符数和字节数是不一致的,一个字符占用两个字节的空间,故字符数是字节数的一半
charindex函数返回字符串中某个子串首次出现的起始位置
charindex(substring,string[,start_pos]),可以选择性的指定搜索的起始位置,即对start_pos赋值,未对其赋值则从第一个字符开始搜索
eg: select charindex(‘m‘,‘abnmdemf‘,5)返回7
select charindex(‘m‘,‘abnmdemfcv‘,8)返回0
select charindex(‘m‘,3)返回4
默认情况下,sqlserver对大小写是不敏感的,但是当设置了对大小写敏感ColLATE latin1_General_CS_AS时(patindex函数同样适用):
eg: select charindex‘test‘,‘this Test is Test‘ ColLATE latin1_General_CS_AS)返回0
select charindex‘test‘,‘this Test is Test‘ ColLATE latin1_General_CI_AS)返回6
patindex函数返回某个模式第一次出现的起始位置patindex(pattern,string)
eg: select patindex(‘%[0-9]%‘,‘abcd123efgh‘)返回5,查询数字0-9中任一数字在字符串‘abcd123efgh‘首次出现的位置,%表示数字前可以匹配任意长度的字符,包括空字符
replace函数将字符串中出现的所有某个子串替换为另一个字符串replace(string,substring1,substring2)将substring1替换为substring2
eg: select replace( ‘l-a 2-b‘, ‘-‘, ‘:‘)返回结果为‘1:a 2:b‘
replicate函数指定的次数复制字符串replicate(string,n)
eg: select replicate(‘abc‘,3)返回‘abcabcabc‘
stuff函数先删除字符串中的一个子串,再插入一个新的子串作为替换stuff(string,pos,delete_length,insertstring)
eg: select stuff(‘xyz‘,2,‘abc‘)返回‘xabcz‘
upper和lower函数将字符串转换为大写或小写upper(string) / lower(string)
rtrim和ltrim函数删除字符串中的尾随空格或前导空格rtrim(string) / ltrim(string)
eg: select rtrim(ltrim(‘ abc ‘))
总结以上是内存溢出为你收集整理的SQLSERVER字符串处理函数全部内容,希望文章能够帮你解决SQLSERVER字符串处理函数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)