在 Inner Join Sql 服务器期间删除重复的列值

Remove repeating column values during an Inner Join Sql Server

我有两个表

Table-1

EmployeeId  EmployeeName
    1            A

Table-2

EmployeeId  Month
    1        Jan
    1        Feb
    1        Mar
    1        Apr

当我根据 employeeid 应用内部连接时,我会得到这样的结果

EmployeeId  EmployeeName    Month
    1            A           Jan
    1            A           Feb
    1            A           Mar
    1            A           Apr

我想从 Table-1 中删除所有重复的列值。我的结果应该是这样的。

EmployeeId  EmployeeName    Month
    1            A           Jan
                             Feb
                             Mar
                             Apr

请就此提出任何想法。

这样就可以了:

WITH CTE AS
(
  SELECT t1.EmployeeId AS t1EmployeeID, t1.EmployeeName,
         t2.EmployeeId AS t2EmployeeID, Month,
         RN = ROW_NUMBER() OVER (Partition BY t1.EmployeeId 
                                 ORDER BY MONTH(t2.Month + ' 1 2015'))
  FROM Table2 t2
  LEFT OUTER JOIN Table1 t1
  ON t1.EmployeeID = t2.EmployeeID
)
SELECT EmployeeId = CASE WHEN RN = 1 
                    THEN t1EmployeeID ELSE NULL END,
       EmployeeName = CASE WHEN RN = 1 
                    THEN EmployeeName ELSE NULL END, 
       Month
FROM CTE

棘手的部分是从缩写月份名称按整数月份排序。

Demo