2012-06-21 82 views
1

我有一個具有包含這樣的值的列Data一個表中的SQL Server 2008數據庫:如何從varchar列中提取值?

Hello\How\Are\You" 

在該列中的每個字符串有4塊

(即3斜線條。)問題:

如何使用TSQL從該列中提取第三個值(本例中爲Are)?

請注意,我只關心第三個值。

回答

3

您可以使用parsenamereplace

declare @S varchar(30) = 'Hello\How\Are\You' 

select parsename(replace(@S, '\', '.'), 2) 
+0

好極了,從來不知道的'parsename'功能 – Kane

+0

它分裂的'.'所以因此需要更換,它只適用於你有四個部分(或更少)。 –

+0

更多比奇妙的: - )感謝Mikael –

1

如果你的數據是一個比較棘手的性質,這是做的一種方式:

declare @t1 table(a nvarchar(500)) 
insert @t1 values('hello/how/are/you') 

select left(t2.b, charindex('/', t2.b + '/') - 1) 
from @t1 t1 
cross apply (select stuff(a,1, charindex('/',a, charindex('/',a) + 1), '') b) t2