答案 0 :(得分:2)
这是使用CTE
WITH CTE AS(
SELECT ROW_NUMBER() OVER(PARTITION BY EmpName ORDER BY EmpID) AS ROWNO,
EmpID,EmpName, EmpSalary FROM tbl_emp
)
SELECT EmpID, EmpName, EmpSalary FROM CTE WHERE ROWNO = 1 order by EmpID
如果要删除重复数据,请使用脚本
WITH CTE AS(
SELECT ROW_NUMBER() OVER(PARTITION BY EmpName ORDER BY EmpID) AS ROWNO,
EmpID, EmpName, EmpSalary FROM tbl_emp
)
DELETE FROM CTE WHERE ROWNO > 1
我认为该查询可以帮助您
答案 1 :(得分:0)
我认为这不需要CTE。我会JOIN
表自己。类似的东西:
SELECT t.* FROM tbl_Emp t
INNER JOIN
(
select MIN(EmpID) FirstEmp from tbl_Emp group by EmpName
) t2
ON t2.FirstEmp=t.EmpID;
基本上,我要加入第二个表格,其中包含每个不同EmpID
的最低 EmpName
字段,然后选择与其中一个匹配的所有行EmpID
字段。
答案 2 :(得分:0)
看起来你正在寻找DISTINCT。
类似的东西:
SELECT DISTINCT Emp_Name, EmpID, EmpSalary
FROM tbl_emp;