0x01 left 函数

说明: 从左开始截取字符串

用法: left(str, length),即: left(被截取字符串, 截取长度)

0x01.1 left 例子

  1. sql server > SELECT LEFT('hello world',8);
  2. +-----------------------+
  3. | field1 |
  4. +-----------------------+
  5. | hello wo |
  6. +-----------------------+
  7. 1 row in set (0.00 sec)

0x02 right 函数

从右开始截取字符串

用法: right(str, length),即: right(被截取字符串, 截取长度)

0x02.1 right 例子

  1. sql server > SELECT RIGHT('hello world',8);
  2. +------------------------+
  3. | field1 |
  4. +------------------------+
  5. | lo world |
  6. +------------------------+
  7. 1 row in set (0.00 sec)

0x03 substring 函数

截取特定长度的字符串

用法:

  • substring(str, pos),即: substring(被截取字符串, 从第几位开始截取)
    substring(str, pos, length)
  • 即: substring(被截取字符串,从第几位开始截取,截取长度)

0x03.1 substring 例子一

从字符串的第2个字符开始,只取3个字符

  1. sql server > SELECT SUBSTRING('hello world', 2, 3);
  2. +--------------------------------+
  3. | field1 |
  4. +--------------------------------+
  5. | ell |
  6. +--------------------------------+
  7. 1 row in set (0.00 sec)

0x03.2 substring 例子二

从字符串每次获取一个字符

  1. sql server > SELECT SUBSTRING('hello world', 1, 1);
  2. +--------------------------------+
  3. | field1 |
  4. +--------------------------------+
  5. | h |
  6. +--------------------------------+
  7. 1 row in set (0.00 sec)
  1. sql server > SELECT SUBSTRING('hello world', 2, 1);
  2. +--------------------------------+
  3. | field1 |
  4. +--------------------------------+
  5. | e |
  6. +--------------------------------+
  7. 1 row in set (0.00 sec)
  1. sql server > SELECT SUBSTRING('hello world', 3, 1);
  2. +--------------------------------+
  3. | field1 |
  4. +--------------------------------+
  5. | l |
  6. +--------------------------------+
  7. 1 row in set (0.00 sec)

0x04 STUFF 函数

他并不是一个字符串截取函数,但是我们可以利用他,作为一个字符串截取函数

STUFF 函数将字符串插入到另一个字符串中。

它从第一个字符串的开始位置删除指定长度的字符;

然后将第二个字符串插入到第一个字符串的开始位置。

STUFF(‘要进行修改的数据’ , (int)’开始位置’ , (int)’删除的字符数’ , ‘插入开头的内容’)

0x04.1 STUFF 例子

  1. sql server > select STUFF('abcde',1,0,'');
  2. +--------------------------------+
  3. | field1 |
  4. +--------------------------------+
  5. | abcde |
  6. +--------------------------------+
  7. 1 row in set (0.00 sec)
  1. sql server > select STUFF('abcde',1,1,'');
  2. +--------------------------------+
  3. | field1 |
  4. +--------------------------------+
  5. | bcde |
  6. +--------------------------------+
  7. 1 row in set (0.00 sec)
  1. sql server > select STUFF('abcde',1,2,'');
  2. +--------------------------------+
  3. | field1 |
  4. +--------------------------------+
  5. | cde |
  6. +--------------------------------+
  7. 1 row in set (0.00 sec)