SQL如何从字符串截取指定字符(LEFT、MID、RIGHT三大函数)

技术博客 (158) 2023-09-16 10:44:54

目录

1.LEFT函数

2.MID函数

3.RIGHT函数


1.LEFT函数

(1)语法:left(text,len)即left(字符串文本,长度)

查询语句
select [column(s),] left(text,len) 
[from table]

参数说明:

text:字符串,可直接引用字符串,也可为字段;

len:截取字符串的长度,为正整数,若为0或负数返回为空值。

说明:查询语句中用“[]”括起来的表示可选。若和其它字段一起查询时需要输入from语句指定目标表,若text为字段时也需要输入from语句指定目标表,若只是用left获取指定某字符串截取时可直接省略from语句,但是这种用法一般只是在调试而不常用于实际当中。

(2)用法:截取左边指定长度字符。

(3)实例

例1:从“hello world”截取“hello”。

select left('hello world',5)

现有一张学生表student,学号id,姓名name,性别sex,籍贯native_place,民族nation,出生日期born,年龄age。如下表所示。

student
ID name sex native_place nation born age
1001 张三 广东省 2000/3/16 22
1002 陈一 广东 1998/3/15 24
1003 王五 西藏 2002/1/6 20
1004 陈红 广东省 2001/1/17 21
1005 李四 东北省 1999/3/16 23
1006 - 广东省 1998/5/6 24
1008 陈小小 广东 1997/5/9 25

例2:将籍贯中省字去掉,截取前两个字。同时获取学生学号、姓名、性别和年龄。

select ID,name,sex,left(native_place,2),age
from student

2.MID函数

(1)语法和用法:有两种形式

#①两个参数
mid(text,start)  #从指定字符串的某序数开始获取字符

#②三个参数
mid(text,start,len) #从指定字符串的某个位置开始获取指定长度的字符

参数说明:

text:字符串,可直接引用字符串,也可为字段;

start:开始截取的字符串位置,可为正负整数。

len:截取字符串的长度,为正整数,若为0或负数返回为空值。

说明:MID函数与SUBSTRING()是同义词,用法相同。

(2)实例

例:从“hello world”中截取“world”字符串。

当start为正数时,则开始字符“w”位置为7,注意的是“hello”和“world”之间的空字符是算一个字符。

#start为正数
#两个两个参数
select mid('hello world',7)  
或
select mid('hello world'from 7)

#三个参数
select mid('hello world',7,5)
或
select mid('hello world'from 7 for 5)

3.RIGHT函数

(1)语法:right(text,len)即right(字符串文本,长度)

查询语句
select [column(s),] right(text,len) 
[from table]

参数说明:

text:字符串,可直接引用字符串,也可为字段;

len:截取字符串的长度,为正整数,若为0或负数返回为空值。

说明:查询语句中用“[]”括起来的表示可选。若和其它字段一起查询时需要输入from语句指定目标表,若text为字段时也需要输入from语句指定目标表,若只是用left获取指定某字符串截取时可直接省略from语句,但是这种用法一般只是在调试而不常用于实际当中。

(2)用法:截取右边指定长度字符。

(3)实例

例1:从“hello world”截取“world”。

select right('hello world',5)

SQL的LEFT、MID、RIGHT三大函数用法与EXCEL的LEFT、MID、RIGHT三大函数用法非常相似,可参考:excel如何从字符串中截取指定字符(LEFT、RIGHR、MID三大函数)_小白修炼晋级中的博客-CSDN博客_excel截取字符串中的一部分

SQL的substring函数可参考:SQL的substring函数及其用法实例——MYSQL另一种截取目标字符的函数_小白修炼晋级中的博客-CSDN博客

THE END

发表回复