具有唯一行的SQL查询结果

具有唯一行的SQL查询结果,sql,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, '

这是我的表格代码:

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,所以我如何才能得到它。谢谢你的帮助

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

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

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

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

是否也需要ID?或者仅仅是fname,lname?虽然这是一条正确的语句,但只返回那些值确实已知的列似乎是毫无用处的(因为
where
子句)。可能是视觉在追求不同的东西。。。