在SQL中将两列的数据合并为一列?

Jam*_*123 3 sql sql-server

我试图将姓氏,名字和中间名称组合到SQL语句中的单个排序名称列中.有时会出现中间名NULL,如果是这种情况,则会显示排序名称NULL.

怎么办呢?

SELECT TOP 500
  Last_Name, First_Name, Middle_Name,
  [Last_Name] + ',' + [First_Name] + ' ' + [Middle_Name] AS SORT_NAME
FROM [dbo].[usr_CUSTOMER]
ORDER BY SORT_NAME
Run Code Online (Sandbox Code Playgroud)

结果:

Last_Name  First_Name   MiddleName  Sort_Name
Aa         Robert       NULL        NULL
Run Code Online (Sandbox Code Playgroud)

但我希望看到sort_name 'Aa,Robert'.

drd*_*cox 8

COALESCE:

  COALESCE([Last_Name], '') + ',' + COALESCE([First_Name], '') + ' ' + 
  COALESCE( 
          [Middle_Name], '') AS SORT_NAME
Run Code Online (Sandbox Code Playgroud)

当然,当姓氏或者第一个和中间都是空的时候,这会留下丑陋的逗号,所以你的实际代码需要更聪明一些.