从多行中获取值,直到找到最后一个字符

时间:2017-10-26 11:27:18

标签: sql get

使用sql语言,有没有办法从多行获取值,直到找到某个字符(在这种情况下,最后一个'_')?

例如:

1 123fad_gfds_123_123456
2 354_fd_1234_abc_1_ttghknvfgh

欲望的结果应该是这样的:

1 123fad_gfds_123_
2 354_fd_1234_abc_1_

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)