使用sql语言,有没有办法从多行获取值,直到找到某个字符(在这种情况下,最后一个'_')?
例如:
1 123fad_gfds_123_123456
2 354_fd_1234_abc_1_ttghknvfgh
欲望的结果应该是这样的:
1 123fad_gfds_123_
2 354_fd_1234_abc_1_
答案 0 :(得分:1)
对于SQL Server
REVERSE
字符串并使用CHARINDEX()
搜索最后 _ 的位置,然后使用SUBSTRING()
declare @var as varchar(30) = '123fad_gfds_123_123456'
select SUBSTRING(@var, 1, LEN(@var) - CHARINDEX('_', REVERSE(@var)) + 1)