SQL中的字符串截取函数

Posted 晓之以理的喵~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL中的字符串截取函数相关的知识,希望对你有一定的参考价值。

字符串截取函数,也是我们在数据开发分析的过程中比较常用的函数,比较常用的函数,有四个 left()、right()、substr()、substring_index() 函数。

一、left()函数

含义:返回从字符串左边开始指定个数的字符
语法格式:left(column,n)
释义:从字段column的字符串内容的左面开始截取,总共截取 n 的位置。
示例语句:SELECT office_name,LEFT(office_name,2) FROM database.table
结果展示:

二、right()函数

含义:返回从字符串右边开始指定个数的字符
语法格式:right(column,n)
释义:从字段column的字符串内容的右面开始截取,总共截取 n 的位置
示例语句:SELECT office_name,right(office_name,1) FROM database.table
结果展示:

三、substr()函数

substr()函数是我们在做字符串截取的时候,用的相对比较对的一个函数,因为它比较灵活,参数比较丰富,可以实现相对复杂一点的字符串截取需求。
格式:substr( expression , start , length )
释义:
(1)expression:需要被截取的字符串,可以是字符串、二进制字符串、text、image、列或包含列的表达式。
(2)start :开始截取的位置。
(3)length :需要截取的长度,(这个参数可以省略,如果没有指定截取长度,默认截取后面的所有字符)。

1,从指定位置开始截取到字符串结束

表达式:substr(column,2)
释义:从column的第二位开始截取,到字符串结束
示例语句:SELECT office_name,SUBSTR(office_name,2) FROM database.table ;
结果展示:

2,从指定位置截取,并指定截取位数

表达式:substr(column,2,1)
释义:从column的第二位开始截取,截取一位
示例语句:SELECT office_name,SUBSTR(office_name,2,1) FROM database.table ;
结果展示:

3,从字符串末尾第一位开始截取

表达式:substr(column,-1)
释义:从字符串末尾第一位开始截取,省略第三个函数,表示截取整个字符串
示例语句:SELECT office_name,SUBSTR(office_name,-1) FROM database.table
结果展示:

4,从字符串倒数几位开始截取,指定个数的字符

表达式:substr(column,-2,1)
释义:从column倒数第二位开始截取,截取一位
示例语句:SELECT office_name,SUBSTR(office_name,-2,1) FROM database.table
结果展示:

四、substring_index() 函数

1,指定字符在字符串中从前往后数出现次数位置,截取该位置之前的所有字符

表达式:substring_index(column,str,count)
释义:截取字符串column,str出现从前往后数第count次,之前的所有字符
示例语句:SELECT substring_index(‘www.baidu.com’,‘.’,2)
结果展示:

2,指定字符在字符串中从后往前数出现次数位置,截取该位置之后的所有字符

表达式:substring_index(column,str,-count)
释义:截取字符串column,str出现从后往前数第count次,之后的所有字符
示例语句:SELECT substring_index(‘www.baidu.com’,‘.’,-2)
结果展示:

3,指定字符在字符串不存在

表达式:substring_index(column,str,count)
示例语句:SELECT substring_index(‘www.baidu.com’,‘Goole’,2)
结果展示:

以上就是我在工作中常用的,分享出来,希望可以和大家一起交流~~

sql如何截取日期字段中的年和月

sql如何截取日期字段中的年和月,日期字段中内容如"2008-12-01",现在让其截取出来显示为"200812"谢谢!

并不需要截取,通过year函数和month函数就可以解决。

比如字段名字叫startdate,类型是datetime。

获得字段中的年和月可用如下语句

select year(startdate) as 年,month(startdate) as 月 from 表名
参考技术A select
year(getdate())
select
datepart(yy,getdate())
例如:
select
year(字段)
as
'年'
from
table_name
select
datepart(yy,字段)
as
'年'
from
table_name
用year()和datepart()函数都可以获取日期中的年。有问题可以追问或hi我。
参考技术B SELECT CAST(DATEPART(YEAR,GETDATE())AS VARCHAR)+CAST(DATEPART(MONTH,GETDATE()) AS VARCHAR)

方法很多啊 有需要就HI我
参考技术C SELECT DATENAME(yyyy, rq) + DATENAME(mm, rq) AS ny
from biao
返回的是字符型的本回答被提问者采纳

以上是关于SQL中的字符串截取函数的主要内容,如果未能解决你的问题,请参考以下文章

sql数据库截取字符串函数

SQL中的字符串截取函数

从sql表里截取字符串中的日期

Sql注入截取字符串常用函数

sqlserver截取日期的年份和月份

sql 截取某个字符之前的数据