如何从varchar列中提取值?

时间:2012-06-21 05:19:38

标签: sql-server-2008 tsql

我有一个SQL Server 2008数据库,其中包含一个包含Data列的表,其中包含如下值:

Hello\How\Are\You"

该列中的每个字符串都有4个块(即3个斜杠)

问题:

如何使用TSQL从该列中提取第3个值(在本例中为Are)?

请注意,我只关心第3个值。

2 个答案:

答案 0 :(得分:3)

您可以使用parsenamereplace

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

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

答案 1 :(得分: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