我需要帮助才能获得一列中空格之间的值。对于下面的要求,我需要在第一个空格之后的值。
我有一个包含多行的列:
原始列
Microsoft SQL Server
Oracle DB Server
Delete From Table Name
SELECT as123 987
预期输出
Expected_Output
SQL
DB
From
as123
答案 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))))