具有唯一行的SQL查询结果

时间:2013-03-06 08:24:25

标签: sql

这是我的表格代码:

create table Names(id int, Fname varchar(40), Lname varchar(40));
insert into Names values(1, 'Zuma', 'Zytaveon');
insert into Names values(2, 'Sara', 'Luqman');
insert into Names values(3, 'Zuma', 'Zytaveon');
insert into Names values(4, 'Rafe', 'Raphael');

如果我运行查询

SELECT DISTINCT from Names 
WHERE Fname = 'Zuma' 
    AND Lname = 'Zytaveon'; 

我得到以下输出。

1|Zuma|Zytaveon
3|Zuma|Zytaveon

我想在我的查询结果中只有Zuma Zytaveon一次,所以我怎么能得到它。谢谢你的帮助!

2 个答案:

答案 0 :(得分:2)

SELECT  DISTINCT FName, LName
from    Names 
WHERE   Fname = 'Zuma' AND Lname = 'Zytaveon';

如果您想拥有最低ID,请使用MIN

SELECT  MIN(ID) ID, FName, LName
from    Names 
WHERE   Fname = 'Zuma' AND Lname = 'Zytaveon'
GROUP   BY FName, LName

答案 1 :(得分:0)

从多个元素的结果集中选择一个元素存在各种可能性:

  • 使用DISTINCT关键字消除结果集中的重复项。这是通过首先排序完成的,因此需要O(N * Log N)时间(如果没有可用于排序的索引)。
  • 使用MIN或MAX等聚合函数,需要O(N)时间才能读取整个结果集。
  • 使用TOP 1构造在O(1)时间内返回第一个定位的行。

根据问题的其他业务要求选择其中一种。