SQL SERVER字符串截取,SQL SERVER根据指定字符截取

本文介绍了如何使用SQL Server中的substring函数进行字符串截取,并通过实例展示了如何根据指定字符来定位截取的位置。此外还提供了去除字符串两端空白及获取字符串长度的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

字符串截取
字符串截取函数:substring(str,startlen,endlen)
需要截取的字符:str
开始长度:startlen --从1开始
结束长度:endlen -从1开始
用法:select substring(“abcdefg”,1,2)
输出:bc

为啥这么麻烦:因为sql server没有substring_index函数,只能用substring函数
根据指定字符截取
需要用到的函数:
substring–介绍上面已经写了
LTRIM --去除左边空格
RTRIM–去除右边空格
len–获取字符长度,从1开始

charindex(target,str)–返回指定字符的下标,从1开始
目标字符:target–可以指定任意东西字符
字符:str–目标字符所在的字符串
用法:charindex(”@“,“1234@abcd”)
输出:4

Tips:这里演示的字符中没包含换行符和占位符,请自行测试

实战sql也可以直接拿来用;
需要改动的地方:表名,目标字符串:b.selectname,目标字符:"/"


SELECT
	LTRIM( RTRIM( b.selectname ) ) AS "字符串",
	charindex( '/', LTRIM( RTRIM( b.selectname ) ) ) + 1 AS "开始位置",
	len( b.selectname ) AS "结束位置",
	SUBSTRING (
		LTRIM( RTRIM( b.selectname ) ),
		charindex( '/', LTRIM( RTRIM( b.selectname ) ) ) + 1,
		len( b.selectname ) 
	) AS "结果" 
FROM
	workflow_billfield a
	LEFT JOIN workflow_selectitem b ON a.id= b.fieldid 
WHERE
	billid = - 13 
	AND fieldname = 'fylx1';

sql执行结果:
在这里插入图片描述

文章到此结束,如有雷同纯属意外;
欢迎大家踊跃发言,积极补充。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值