我有一個SQLServer問題。計算工會結果的第二頁
我想解決如何顯示第二頁的結果。結果的第一頁是使用下面的查詢拉取的。
SELECT TOP 10 * FROM (
SELECT c.id, c.name, c.inserteddate, c.cityname, ftblstates.name AS statename, clc.name AS catname, '' AS listingimagelogo, '' AS orgname, relocateyn, '' AS employerclassified
FROM tblclassifieds c
LEFT JOIN tblclassifiedscategories clc ON c.categoryid = clc.id
LEFT JOIN ftblstates ON c.stateid = ftblstates.id
WHERE c.expirydate != '' AND c.expirydate >= '5/17/2011'
UNION ALL
SELECT ce.id, ce.name, ce.inserteddate, suburb AS cityname, ftblstates.name AS statename, ce.jobtype AS catname, ce.listingimagelogo, ce.orgname, '' AS relocateyn, '1' AS employerclassified
FROM tblclassifiedemployers ce
LEFT JOIN ftblstates ON ce.stateid = ftblstates.id
WHERE ce.expirydate != '' AND ce.expirydate >= '5/17/2011'
) a
ORDER BY inserteddate desc;
答案與以下內容類似嗎?
SELECT TOP 10 * FROM (
SELECT c.id, c.name, c.inserteddate, c.cityname, ftblstates.name AS statename, clc.name AS catname, '' AS listingimagelogo, '' AS orgname, relocateyn, '' AS employerclassified
FROM tblclassifieds c
LEFT JOIN tblclassifiedscategories clc ON c.categoryid = clc.id
LEFT JOIN ftblstates ON c.stateid = ftblstates.id
WHERE c.expirydate != '' AND c.expirydate >= '5/17/2011'
UNION ALL
SELECT ce.id, ce.name, ce.inserteddate, suburb AS cityname, ftblstates.name AS statename, ce.jobtype AS catname, ce.listingimagelogo, ce.orgname, '' AS relocateyn, '1' AS employerclassified
FROM tblclassifiedemployers ce
LEFT JOIN ftblstates ON ce.stateid = ftblstates.id
WHERE ce.expirydate != '' AND ce.expirydate >= '5/17/2011'
) a
WHERE NOT a.id IN (SELECT TOP 10 tblclassifieds.id ...
ORDER BY inserteddate desc;
有人可以幫我完成查詢嗎?
看起來也許你正在試圖找出分頁SQL查詢的一般模式。如果是這樣,你的問題可能是「http://stackoverflow.com/questions/1418105/paging-design-recommendation-for-asp-net-and-sqlserver-2005/1418258#1418258 – 2011-05-17 05:31:13
http:// stackoverflow .com/questions/2135418/equivalent-of-limit-and-offset-for-sql-server – 2011-05-17 05:37:30
@mu引用的問題與上面提到的問題相比,更具體到您的問題,但請注意,這兩個問題的答案都需要使用在SQL Server> = 2005中可以使用'row_number()'函數。對於舊版本,您唯一的工具是選擇'TOP N'作爲示例。假設您需要第四頁,每頁10行,您需要(1)選擇所有行,按照所需的順序排序(2)將行添加到SELECT頂部4 * 10行,按相反順序排序,(3)添加更多行以查詢以從這40個行中選擇前10行,這次按期望的順序排序 – 2011-05-17 06:07:27