首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NVarchar场中干涉仪间数据的提取

NVarchar场中干涉仪间数据的提取
EN

Database Administration用户
提问于 2017-06-07 14:34:26
回答 1查看 394关注 0票数 0

我有一个nvarchar(1000)数据类型字段,它保存这样的数据

name_Test_1 name_Test1_2 name_Test2_3

现在我要提取的数据是_之间的数据,所以我想要提取的数据是

代码语言:javascript
复制
Test
Test1
Test2

我尝试了下面的语法,但是由于字符串中有两个_,所以我返回的数据是1,2,3--应该如何更改这个查询,以便得到中间字符串?

代码语言:javascript
复制
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
EN

回答 1

Database Administration用户

回答已采纳

发布于 2017-06-07 14:54:31

这似乎是可行的:

代码语言:javascript
复制
declare @name varchar(20) = 'name_Test_1'

select SUBSTRING(@name,CHARINDEX('_',@name,0)+1, (CHARINDEX('_',@name,CHARINDEX('_',@name,0)+1)) - CHARINDEX('_',@name,0)-1)
票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/175666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档