【发布时间】:2020-06-25 18:33:03
【问题描述】:
我有多个这样的记录:GUID-155_188.PNG
我需要取字符串155,当然这个数字是可变的,所以可能有1、2、3000等。
但语法总是相同的,在- 和_ 之间。
那么,我怎样才能提取这两个字符之间的那部分呢?
【问题讨论】:
-
不是我所期待的,但我很满意
标签: sql sql-server string
我有多个这样的记录:GUID-155_188.PNG
我需要取字符串155,当然这个数字是可变的,所以可能有1、2、3000等。
但语法总是相同的,在- 和_ 之间。
那么,我怎样才能提取这两个字符之间的那部分呢?
【问题讨论】:
标签: sql sql-server string
试试这个:
DECLARE @g varchar(1000) = 'GUID-155_188.PNG'
SELECT LEFT(RIGHT(@g, CHARINDEX('-', REVERSE(@g), 0) - 1), CHARINDEX('_', (RIGHT(@g, CHARINDEX('-', REVERSE(@g), 0) - 1)), 0) - 1)
【讨论】:
试试这个:
DECLARE @string VARCHAR(100) = 'GUID-15_188.PNG'
SELECT SUBSTRING(@string, CHARINDEX('-', @string) + 1, CHARINDEX('_', @string) - CHARINDEX('-', @string) - 1)
【讨论】: