sql server在一列中的空格之间获取值

时间:2014-11-17 04:09:21

标签: sql sql-server sql-server-2008 sql-server-2008-r2

我需要帮助才能获得一列中空格之间的值。对于下面的要求,我需要在第一个空格之后的值。

我有一个包含多行的列:

原始列

Microsoft SQL Server
Oracle DB Server
Delete From Table Name
SELECT as123 987

预期输出

Expected_Output

SQL
DB
From 
as123

2 个答案:

答案 0 :(得分:5)

此类问题的一个技巧是使用parsename()。假设名称中没有句点,我认为以下内容符合您的要求:

select parsename(replace(val, ' ', '.'), 2)

Here就是一个例子。

编辑:

Sgeddes是对的。如果您一直想要第二个名称并且可以有三个或四个部分,则可以使用reverse()

select reverse(parsename(replace(reverse(val), ' ', '.'), 2))

(似乎其中一个值确实有四个部分;我最初将其视为“从TableName中删除”。)

答案 1 :(得分:0)

试试这个。使用Substring, Charindex and Left string function获取值。

select left(substring(Col,charindex(' ',Col)+1,len(Col)),charindex(' ',substring(Col,charindex(' ',Col)+1,len(Col))))