我有一个关于在一行中组合基于空格('')的列的可能性的问题。这背后的原因是因为我使用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]发布于 2014-02-27 03:17:49
您需要在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的答案要好得多。
发布于 2014-02-27 03:18:02
您可以使用COALESCE函数来获取没有中间首字母的名字,如下所示:
SELECT COALESCE([First_Name2], [First_Name]) as Column_Neededhttps://stackoverflow.com/questions/22050918
复制相似问题