具有唯一行的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
子句)。可能是视觉在追求不同的东西。。。