SQL Server字符串处理相关函数
sqlserver字符串的字符位置编号是从1开始的,与C#字符串中字符位置编号从0开始有区别
比如在sqlserver中字符串 'abcd' 位置编号依次为1,2,3,4 比如字符'c'的位置编号为3
left和right
left:从指定字符串左边第一个位置开始取指定数量的字符
right:从指定字符串右边第一个位置开始取指定数量的字符
示例:
select LEFT('abcdefg',2)'left'
select right('abcdefg',2)'right'
运行结果:
charindex
通过CHARINDEX如果能够找到对应的字符串则返回该字符串位置,否则返回0。
基本语法如下:
CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )
expressionToFind :目标字符串,就是想要找到的字符串,最大长度为8000 。
expressionToSearch :用于被查找的字符串。
start_location:开始查找的位置,为空时默认从第一位开始查找。
示例:
简单查询
select charindex('test','this Test is Test')
查询结果:
由于数据库默认是不区分大小写的,所以字符串‘test’和‘Test’等效
增加起始搜索位置
select charindex('test','this Test is Test',7)
结果:
区分大小写
select charindex('test','this Test is Test'COLLATE Latin1_General_CS_AS)
执行结果:
substring
substring 是截取指定字符从指定位置开始截取指定数量的字符
示例:
select substring('123456',2,4) -- 截取字符串'123456'从第2个位置开始4个字符
运行结果: