我有一个列名(文件)和数据看起来像/vr/gg/ercs/nyt_dte/segment/xml/子网/=hhh/bvth=lhyt012我需要提取=和/example hhh之间的数据。
您可以通过查找两个字符的索引并使用substring
函数来实现。下面是查询示例:
declare @sampleString nvarchar(500) = '/vr/gg/ercs/nyt_dte/segment/xml/subnetwor/=hhh/bvth=lhyt012';
select
substring(@sampleString, OpeningCharIndex + 1, ClosingCharIndex - OpeningCharIndex - 1)
from (
select
OpeningCharIndex,
CHARINDEX('/', @sampleString, OpeningCharIndex) ClosingCharIndex
from (
select
CHARINDEX('=', @sampleString) OpeningCharIndex
) a
) a
使用您提供的数据:
create table MyTable (
MyColumn varchar(100)
)
insert into MyTable values ('/vr/gg/ercs/nyt_dte/segment/xml/subnetwor/=hhh/bvth=lhyt012')
这个简单的选择是你想要的:
SELECT SUBSTRING(
MyColumn,
charindex('=', MyColumn) + 1,
CHARINDEX('/', substring(MyColumn, charindex('=', MyColumn) + 2, LEN(MyColumn)))
)
from MyTable
SQL Fiddle: http://sqlfiddle.com/#!18/374677/3