首页 > 数据库 > mysql教程 > 如何从多列 SQL 查询中仅检索唯一的电子邮件地址?

如何从多列 SQL 查询中仅检索唯一的电子邮件地址?

Barbara Streisand
发布: 2024-12-28 11:37:20
原创
796 人浏览过

How Can I Retrieve Only Unique Email Addresses from a Multi-Column SQL Query?

特定列的 DISTINCT

给定一个从产品中检索多个列的查询,例如 ID、电子邮件、产品名称和产品型号表,如何修改它以仅显示唯一的电子邮件值?

为了解决这个问题,SQL Server 2005 及更高版本提供了解决方案:

SELECT *
FROM (
    SELECT  ID, 
            Email, 
            ProductName, 
            ProductModel,
            ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
        FROM Products
) a
WHERE rn = 1
登录后复制

此查询使用 ROW_NUMBER() 函数为每个电子邮件分区中的每一行分配一个行号,按 ID 的降序排列。然后,rn 列标识最终结果中应包含哪一行,因为只有 rn 等于 1 的行才会被选择。

为了进一步细化查询,可以添加 WHERE 子句来过滤基于的行根据具体标准。例如,仅包含具有特定 ProductModel 且 ProductName 包含特定子字符串的行:

SELECT *
FROM (
    SELECT  ID, 
            Email, 
            ProductName, 
            ProductModel,
            ROW_NUMBER() OVER(PARTITION BY Email ORDER BY ID DESC) rn
        FROM Products
    WHERE ProductModel = 2
    AND ProductName LIKE 'CYBER%'
) a
WHERE rn = 1
登录后复制

以上是如何从多列 SQL 查询中仅检索唯一的电子邮件地址?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板