admin

如何选择带有一个独立列的多个列

sql

目标: 使用SqlServer 2005,选择多个列,但确保1个特定的列不是重复的

问题: 以下代码不会删除重复项。重复的字段是电子邮件。

SELECT DISTINCT 
           email,
           name,
           phone
FROM
    database.dbo.table
WHERE
    status = 'active'
GROUP BY
    email,
    name,
    phone

预先感谢您的任何意见,建议或建议。


阅读 129

收藏
2021-06-07

共1个答案

admin

它会删除重复的电子邮件,但您必须确定所需的姓名和电话。结果基于名称,电话排序顺序。

WITH cl
as
(
SELECT email, name, phone, ROW_NUMBER() OVER(PARTITION BY email ORDER BY name, phone) rn
FROM
    database.dbo.table
WHERE
    status = 'active')

select *
from cl
where rn =1
2021-06-07