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个字符

  运行结果:

  

 

posted @ 2020-12-01 19:44  温故纳新  阅读(201)  评论(0编辑  收藏  举报