sqlserver substring(SQL server 如何截取一个字符串中第2个’-’后面的字符)

本文目录
- SQL server 如何截取一个字符串中第2个’-’后面的字符
- sql 截取字段前8位和最后4位
- sqlserver sbustring怎么用 详细点
- 从sqlserver数据库中提取日期,并把年月日分别截取出来
- sql server 取两个字符之间的字符
SQL server 如何截取一个字符串中第2个’-’后面的字符
sql语句可以截取指定字段后面的字符串,以sqlserver为例,需要用到charindex函数和substring函数。
如test表中有如下数据,要求截图str字段中逗号后边的内容。
可用如下语句:
1select id,substring(str,charindex(’,’,str)+1,len(str)-charindex(’,’,str)) from test;结果截图:
charindex函数说明:
语法:
CHARINDEX ( expression1 , expression2 , )
参数:
expression1
一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。
expression2
一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。
start_location
在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。
substring函数说明:
语法:
substring( expression, start, length)
参数:expression 字符串、二进制字符串、文本、图像、列或包含列的表达式start 整数或可以隐式转换为 int 的表达式,指定子字符串的开始位置length 整数或可以隐式转换为 int 的表达式,指定子字符串的长度
sql 截取字段前8位和最后4位
1、SUBSTRING
返回字符、binary、text 或 image 表达式的一部分。有关可与该函数一起使用的有效 Microsoft® SQL Server™ 数据类型的更多信息,请参见数据类型。
语法
SUBSTRING(expression , start , length )
参数
expression
是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。
start
是一个整数,指定子串的开始位置。
length
是一个整数,指定子串的长度(要返回的字符数或字节数)。
substring()
——任意位置取子串
2、left() 和right()
——左右两端取子串
示例:
declare @str varchar(100);
set @str=’gwengnwelgkweg’;
select Substring(@str,0,8)--从左边第一位开始,截取8位
select Substring(@str,Len(@str)-4,4)--截取后4位
--left() right()
select left(@str,8) --截取前8位
select right(@str,4) --截取后4位
sqlserver sbustring怎么用 详细点
在操作sqlserver时候用到了substring函数
SUBSTRING ( expression, start, length )
参数
expression
字符串、二进制字符串、文本、图像、列或包含列的表达式。请勿使用包含聚合函数的表达式。
start
整数或可以隐式转换为 int 的表达式,指定子字符串的开始位置。
length
整数或可以隐式转换为 int 的表达式,指定子字符串的长度(但是结果并补一个返回length字符长度,要看expression的长度和start的设置!!!!!!!!!!!)。
返回值
如果 expression 是一种支持的字符数据类型,则返回字符数据。如果 expression 是一种支持的二进制数据类型,则返回二进制数据。如果 start = 1,则子字符串从表达式的第一个字符开始
需要补充一句的是,开始start位置的设置,确实如果设置为1,会从第一个字符开始计数,2,3,4....以此类推、
select substring(ziduan,1,6)
将会选择字段的前6个字符,比如说是200908
如果设置为0,
同样的执行select substring(ziduan,0,6)
结果会是20090,如果换成-1
同样执行select substring(ziduan,-1,6)
结果会是2009
同样-2,-3,.................依次类推
下面是网络上的其它一些文章。
substring(’98765’,-1,3) 结果:9
substring(’98765’,0,3) 结果:98
substring(’98765’,1,3) 结果:987
关于函数的这种情况,找了点资料,但是仍不是很明白
SubString($sourceString ,$startingLoc,$length)
$sourceString
资源字符串。
$startingLoc
子字符串在资源字符串中的起点。如果此值为负数或 0,则只返回那些所在位置大于零的字符。如果此值大于 $sourceString 的长度,则返回长度为零的字符串。
$length
要检索的字符数。如果没有指定此值,它将返回从 $startingLoc 中指定的位置开始直到字符串末尾的所有字符。
如果此值为负数或 0,则只返回那些所在位置大于零的字符。
从sqlserver数据库中提取日期,并把年月日分别截取出来
可以用substring截取,也可以转换成datetime然后用year、month、day三个函数计算
以标准日期格式2012-12-19
10:50:02.000为例
substring(col,1,4)=year
substring(col,6,2)=month
substring(col,9,2)=day
year(convert(datetime,col))、month(convert(datetime,col))、day(convert(datetime,col))
sql server 取两个字符之间的字符
MS SQL:
取“明”和“地”之间的:
select SUBSTRING(a.a, CHARINDEX(’明’, a.a)+1, CHARINDEX(’地’, a.a)-CHARINDEX(’明’, a.a)-1 )
from(
select ’床前明月光疑是地上霜’ as a
)a
包含“明”与“地”:
select SUBSTRING(a.a, CHARINDEX(’明’, a.a), CHARINDEX(’地’, a.a)-CHARINDEX(’明’, a.a)+1 )
from(
select ’床前明月光疑是地上霜’ as a
)a
取"地"之前的:
select SUBSTRING(a.a, 1, CHARINDEX(’地’, a.a)-1 )
from(
select ’床前明月光疑是地上霜’ as a
)a

更多文章:
executed怎么读音(出现这行文字code will never be executed该怎么办)
2025年12月19日 20:45
怎么修改linux主机名(linux中dhcp服务将主机名更改为server)
2025年9月16日 03:45
socket多线程通信(您好,多线程下socket客户端与服务的通讯速度 比不起多线程的socket客户端与服务端得通讯速度要慢多了)
2026年9月17日 11:15
由组成用英语怎么说consist of(be composed of和consist of有什么区别呢)
2026年1月5日 07:15
project软件用途(试述project 对于项目管理的作用)
2026年3月23日 22:45
永磁同步电机和三相异步电机(永磁变频电机和普通异步变频电机有什么不同呢)
2025年6月6日 04:15
matlab函数 是什么意思(matlab中abs函数是什么意思)
2026年2月27日 07:00
站长统计入口ios(网页自动弹出的“站长统计“怎样才能消除)
2026年8月23日 18:15
access下载后要激活吗(为什么我安装完了,可是Access还是没有激活)
2026年8月5日 08:00
hyperwork各版本区别(hyperworks中bar2与rbe3有什么区别)
2025年12月9日 04:15
oracle数据库配置参数(如何把oracle sql参数如何用@参数)
2026年7月11日 16:45
rank函数怎么用mysql(MySQL窗口_分布、前后、头尾函数)
2026年5月5日 04:45
有关alloc函数的实现?请问allocation与apportionment的区别是什么
2025年7月18日 04:00










