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

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

字符串截取
字符串截取函数: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执行结果:
SQL SERVER字符串截取,SQL SERVER根据指定字符截取 (https://mushiming.com/) 技术博客 第1张

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

THE END

发表回复