在 2 个下划线之间获取数据
Fetching data between 2 underscore
我有这个查询:
Declare @t nvarchar(300) ='83082351_10_P00004'
select SUBSTRING(
@t,
charindex('_',@t)+1,
CHARINDEX('_', @t, (CHARINDEX('_', @t)+1))
)
我希望输出为 10
,它位于两个 _
字符之间,我不知道我在查询中做错了什么。
有人可以帮我解决这个问题吗?
正如 Larnu 所指出的,您要求的字符太多。您还需要将初始下划线的位置减去 return 只是中间字符:
declare @t nvarchar(300) ='83082351_10_P00004'
select substring(@t
,charindex('_',@t)+1
,charindex('_'
,@t
,charindex('_', @t)+1
)
- (charindex('_',@t)+1)
)
我有这个查询:
Declare @t nvarchar(300) ='83082351_10_P00004'
select SUBSTRING(
@t,
charindex('_',@t)+1,
CHARINDEX('_', @t, (CHARINDEX('_', @t)+1))
)
我希望输出为 10
,它位于两个 _
字符之间,我不知道我在查询中做错了什么。
有人可以帮我解决这个问题吗?
正如 Larnu 所指出的,您要求的字符太多。您还需要将初始下划线的位置减去 return 只是中间字符:
declare @t nvarchar(300) ='83082351_10_P00004'
select substring(@t
,charindex('_',@t)+1
,charindex('_'
,@t
,charindex('_', @t)+1
)
- (charindex('_',@t)+1)
)