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

Mit*_*chi 0 sql sql-server sql-server-2008 sql-server-2008-r2

我需要帮助来获取一列中空格之间的值.对于下面的要求,我需要第一个空格后的值.

我有一个包含多行的列:

原始列

Microsoft SQL Server
Oracle DB Server
Delete From Table Name
SELECT as123 987
Run Code Online (Sandbox Code Playgroud)

预期的产出是

Expected_Output

SQL
DB
From 
as123
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 5

这类问题的一个技巧是使用parsename().假设名称中没有句点,我认为以下是您想要的:

select parsename(replace(val, ' ', '.'), 2)
Run Code Online (Sandbox Code Playgroud)

是一个例子.

编辑:

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

select reverse(parsename(replace(reverse(val), ' ', '.'), 2))
Run Code Online (Sandbox Code Playgroud)

(似乎其中一个值确实有四个部分;我最初将其读作"从TableName中删除".)