You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用DISTINCT仅输出同名两人的姓名,同时校验出生日期?SQL

解决方案

要实现仅输出同名且出生日期不同的两名人员的姓名(并使用DISTINCT关键字),可以通过以下方式调整SQL语句:

方法1:自连接结合DISTINCT

SELECT DISTINCT p1.name
FROM people p1
JOIN people p2 
  ON p1.name = p2.name 
  AND p1.birth != p2.birth
WHERE p1.name = "x";

方法2:EXISTS子查询结合DISTINCT

SELECT DISTINCT name
FROM people
WHERE name = "x"
AND EXISTS (
    SELECT 1
    FROM people p2
    WHERE p2.name = people.name
    AND p2.birth != people.birth
);

说明

  • 原语句SELECT DISTINCT name, birth会返回姓名+出生日期的唯一组合,因此会显示出生日期,不符合需求。
  • 上述两种方法都通过校验存在另一个同名但出生日期不同的记录,确保输出的姓名对应至少两名不同的人员,同时仅返回姓名字段,并使用DISTINCT关键字避免重复输出姓名(即使有更多同名人员也只会显示一次)。

内容的提问来源于stack exchange,提问作者DumbDumbie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 21:15:06