我想在两个查询中选择一个字符串的一部分
我想在一个查询中选择第一个'\ n 之后的内容 在第二个查询中,我想在第二个'\ _
之后选择文本 '\'之间文本的长度不断变化。
我试过了:
SELECT Somecolumn=Substring(column1, 0, Charindex('\', column1, 1))
FROM dbo.sometable
结果:
SOMECOLUMN
Server
Access Database
Sql-Fiddle:http://sqlfiddle.com/#!3/f0458/1
答案 0 :(得分:2)
要在第一个“\”之后获取字符串,您可以使用以下查询:
declare @residence varchar(200)
set @residence='Server \ Windows \ Access Database'
select left(@residence, CHARINDEX('\',@residence)-1) AS [Result]
和第二个:你想在第二个“\”之后得到字符串:为此你可以使用下面的查询
select RIGHT(@residence, CHARINDEX('\', REVERSE('\' + @residence)) - 1) AS [Result]
那就是
答案 1 :(得分:1)
试试这个:
create table t (val varchar(50))
insert into t
select 'Server \ Windows \ Access Database'
union all
select 'Access Database \ Server \ Windows'
<强> Fiddle demo 强>:
;with cte as (
select charindex('\',val,0) index1,
charindex('\',val, charindex('\',val,0)+1) index2
from t
)
select val, right(val, len(val) - index1) first,
right(val, len(val) - index2) second
from cte
| FIRST | SECOND |
-----------------------------|------------------|--
| Windows \ Access Database | Access Database |
| Server \ Windows | Windows |