Column A
/Site/Test1/mysite/Do?id=90
/Site/Test2/mysite/Done?id=10
/NewSite/Site/Test3/mysite/Do?id=90
/Site/Test3/mysite/Done?id=1901
我要做的是从每一行获取Test#
以及在=
之后获取#。
我尝试了以下内容:
Select
SUBSTRING(Column A, CHARINDEX('/', Column A, 1) + 7, LEN(Column A)),
SUBSTRING(Column A, CHARINDEX('=', Column A, 1) + 1, LEN(Column A)),
Column A
from
Table1
我可以在=
之后获得#,但如何从每行获取Test#
。
更新:Test#
就是一个例子,它可以是任何东西。可以肯定的是Site
和NewSite
。
更新#2:
更新表:
Column A
/Site/My%20Web%20Site/mysite/Do?id=90
/Site/Test%20It%20Out/mysite/Do?id=101
/Site/Test1/dummy/Done?id=1000
/NewSite/Site/No%20Way/thesite/Do?id=909
结果:
Col1 Col2
My%20Web%20Site 90
Test%20It%20Out 101
Test1 1000
No%20Way 909
答案 0 :(得分:1)
select
Col1 = substring(a
, charindex('/Site/', a)+6
, charindex('/', a,(charindex('/Site/', a)+6))-(charindex('/Site/', a)+6)
)
, Col2 = substring(a
, charindex('=', a, 1) + 1
, len(a))
from t
rextester演示:http://rextester.com/DEBB37305
返回:
+-----------------+------+
| Col1 | Col2 |
+-----------------+------+
| My%20Web%20Site | 90 |
| Test%20It%20Out | 101 |
| Test1 | 1000 |
| No%20Way | 909 |
+-----------------+------+
答案 1 :(得分:0)
这应该有效:
select SUBSTRING(col,CHARINDEX('Test',col),5)
用一个例子测试它:
select SUBSTRING('/Site/Test1/mysite/Do?id=90',CHARINDEX('Test','/Site/Test1/mysite/Do?id=90'),5)