在空行上组合列

时间:2014-02-26 19:10:09

标签: sql

我有一个关于连续基于空格('')组合列的可能性的问题。这背后的原因是因为我使用charindex来剥离名字中间的首字母。但是,如果数据不包含中间的初始值,我将其设置为返回空白('')。 以下是我要做的一个例子。

First_Name     First_Name2   Column_Needed
John B         John          John
Fred                         Fred
Mary D         Mary          Mary
Mike                         Mike
Scott S        Scott         Scott

我想有第三列将两列合并为一列,没有空格,没有中间的首字母,但是所有的名字。

我用来剥离中间初始代码的一些代码示例......

LEFT([First_Name], CHARINDEX(' ', [First_Name])) AS [First_Name2]

2 个答案:

答案 0 :(得分:1)

您需要在SQL中使用CASE语句:

SELECT CASE LEFT([First_Name], CHARINDEX(' ', [First_Name])) WHEN '' THEN [First_Name] ELSE LEFT([First_Name], CHARINDEX(' ', [First_Name])) END as Column_Needed

@Joseph B是一个更好的答案。

答案 1 :(得分:1)

您可以使用COALESCE函数获取没有中间首字母的名字,如下所示:

SELECT COALESCE([First_Name2], [First_Name]) as Column_Needed