2
A
回答
2
使用SQL Server CTE和ROW_NUMBER你可以尝试使用
DECLARE @ParentTable TABLE(
ID INT
)
INSERT INTO @ParentTable SELECT 1
INSERT INTO @ParentTable SELECT 2
INSERT INTO @ParentTable SELECT 3
DECLARE @ChildTable TABLE(
ID INT,
ParentID INT
)
INSERT INTO @ChildTable SELECT 1, 1
INSERT INTO @ChildTable SELECT 2, 1
INSERT INTO @ChildTable SELECT 3, 1
INSERT INTO @ChildTable SELECT 4, 1
INSERT INTO @ChildTable SELECT 5, 1
INSERT INTO @ChildTable SELECT 6, 1
INSERT INTO @ChildTable SELECT 7, 1
INSERT INTO @ChildTable SELECT 8, 2
INSERT INTO @ChildTable SELECT 9, 2
INSERT INTO @ChildTable SELECT 10, 3
INSERT INTO @ChildTable SELECT 11, 3
;WITH RowNums AS(
SELECT pt.ID ParentID,
ct.ID ChildID,
ROW_NUMBER() OVER (PARTITION BY pt.ID ORDER BY ct.ID) RowNum
FROM @ParentTable pt INNER JOIN
@ChildTable ct ON pt.ID = ct.ParentID
)
SELECT ParentID,
ChildID
FROM RowNums
WHERE RowNum <= 5
2
尝试常规连接,其中约束是一个子查询子表拉动TOP 5。在未经测试的伪代码:
SELECT A.MasterID, B.*
FROM MasterTable A
JOIN ChildTable B
ON A.MasterID = B.MasterID
AND B.ChildID IN (SELECT Top 5 ChildID FROM ChildTable
WHERE MasterID = A.MasterID ORDER BY Whatever)
相关问题
- 1. SQL Server每天选择一条记录
- 2. 选择总计只返回SQL Server中的一条记录
- 3. 在SQL Server表中选择记录
- 4. 为每条记录选择多条记录
- 5. MYSQL - 为表中的每个类别选择前4条记录
- 6. 只选择一条记录
- 7. 改进SQL Server在表中选择与多条记录
- 8. 在PostgreSQL中选择每个客户的最后两条记录
- 9. 如何选择MySQL中每个topic_id的最后两条记录
- 10. SQL Server +选择所有不同记录的前1条记录
- 11. SQL Server 2008中选择两个表
- 12. 为每个类别选择前10条记录
- 13. SQL Server时,选择一个记录的记录每一个“X”量
- 14. SQL Server - 如何选择每个用户的最新记录?
- 15. 在SQL Server 2000中为两个不同的表选择两列
- 16. 选择少于10个条目的记录sql server
- 17. 如何开发t-sql子查询,每个只选择一条记录?
- 18. 选择进入和退出记录表中的每个条目
- 19. SQL Server 2012,选择两个最大记录,然后加入
- 20. 如何在MySQL中为每个“类别”选择5条记录?
- 21. 如何统计SQL Server 2005数据库中每个表中的每条记录?
- 22. 从多个SQL Server表中选择TOP 4记录。使用vb.net
- 23. 的Oracle SQL:如何选择N条记录每一个“组” /“簇”
- 24. SQL - 每个人随机选择一条记录
- 25. SQL试图只选择几个返回的第一条记录
- 26. 每组选择前x条记录
- 27. SQL Server:选择多个表/条件
- 28. 更新SQL Server中每个唯一记录的一个条目
- 29. 为SQL Server中的表中的每个2 DISTINCT列选择行
- 30. 从表格中选择最多n条记录,每组最多一条记录
现在升级到“有点测试approxicode” – LesterDove 2010-04-23 04:10:29
FYI,这工作。我没有提出足够好的答案,不主张实际工作的人:-) – LesterDove 2010-04-23 04:16:25