在SQL中限制结果

时间:2012-05-23 14:45:46

标签: sql sql-server tsql

我的下表包含以下列:

Person(id, name, surname)

我想提取具有相同名称的人,但每个名称只返回5行。

有什么想法吗?谢谢。

编辑:因为我正在使用jQuery Mobile和Phonegap开发一个iPad应用程序,我正在使用HTML5本地数据库。我需要维持原始订单。

4 个答案:

答案 0 :(得分:2)

SELECT p1.* FROM Person p1
WHERE p1.id in (
    SELECT TOP 5 p2.id FROM Person p2
    WHERE p2.name = p1.name
)
ORDER BY p1.id

答案 1 :(得分:0)

select distinct top 5  name from Person

答案 2 :(得分:0)

您可以使用分区。例如:

USE Table1;

with TempXYZ as
(
select *, row_number() over (partition by fname order by fname) as ABC
)
SELECT * from TempXYZ where ABC <=5

TempXYZ只是一个用于存储数据的临时表,ABC是一个虚拟字段,将通过fname进行分区。

答案 3 :(得分:0)

select name, surname 
from Person a 
where id in (
select top 5 b.id from Person b where b.name=a.name
)