0

这是我的表格代码:

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 在我的查询结果中只出现一次,那么我怎样才能得到它。谢谢你的帮助!

4

2 回答 2

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
于 2013-03-06T08:25:43.297 回答
0

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

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

根据问题的其他业务需求选择其中之一。

于 2013-03-06T08:38:20.967 回答