我有一个nvarchar(1000)数据类型字段,它保存这样的数据
name_Test_1 name_Test1_2 name_Test2_3
现在我要提取的数据是_之间的数据,所以我想要提取的数据是
Test
Test1
Test2我尝试了下面的语法,但是由于字符串中有两个_,所以我返回的数据是1,2,3--应该如何更改这个查询,以便得到中间字符串?
Declare @Red Table (fname nvarchar(1000))
Insert Into @Red (fname) Values
('name_Test_1'), ('name_Test1_2'), ('name_Test2_3')
Select
RIGHT(fname,CHARINDEX('_',REVERSE(fname))-1) as RightHalf
FROM @Red发布于 2017-06-07 14:54:31
这似乎是可行的:
declare @name varchar(20) = 'name_Test_1'
select SUBSTRING(@name,CHARINDEX('_',@name,0)+1, (CHARINDEX('_',@name,CHARINDEX('_',@name,0)+1)) - CHARINDEX('_',@name,0)-1)https://dba.stackexchange.com/questions/175666
复制相似问题