2012-10-18 52 views
0

可能重複:
Row Offset in SQL Server返回n個

我有具有類似條件的查詢,並將其返回大約1500行。現在我想知道如何逐行獲取行,例如返回75行,然後再返回75行,直到達到行的末尾。我知道我可以使用類似SELECT TOP 75

我想是這樣的,但它不返回任何行

SELECT * 
    FROM 
     (SELECT ROW_NUMBER() OVER (ORDER BY WarehouseSubType.id) as row, 
       WarehouseSubType.id, 
       WarehouseType.name as WarehouseTypename, 
       WarehouseType.alternateName AS WarehouseTypealternateName, 
       WarehouseSubType.name AS WarehouseSubTypename, 
       Warehouse.alternateName AS WarehousealternateName, 
       WarehouseSubType.alternateName AS WarehouseSubTypealternateName, 
       WarehouseSubType1.name AS WarehouseSubType1name, 
       WarehouseSubType1.alternateName AS WarehouseSubType1alternateName, 
       Warehouse.alternateName AS Warehousename, 
       Branch.name AS Branchname, 
       Branch.alternateName AS BranchalternateName, 
       WarehouseProductQuantity.actualQuantity, 
       WarehouseProductQuantity.reservedQuantity, 
       Supplier.companyName, 
       Supplier.companyNameAlternate, 
       Tafsil.description, 
       Tafsil.alternateDescription, 
       (WarehouseProductQuantity.actualQuantity - WarehouseProductQuantity.reservedQuantity) AS quantity 
     FROM WarehouseSubType 
     INNER JOIN WarehouseType ON (WarehouseSubType.warehouseTypeId = WarehouseType.id) 
     INNER JOIN WarehouseSubType1 ON (WarehouseSubType.id = WarehouseSubType1.warehouseSubTypeId) 
    ) a 
WHERE 
    warehouseTypename like '%Ve%' 
    AND row > 0 and row < 75 
+1

看到這個答案:http://stackoverflow.com/questions/187998/row-offset-in-sql-server –

+0

@ShawnSteward INFACT我已經使用了,但不返回任何記錄 – ZAJ

+0

什麼版本的SQL?如果2012年那麼有分頁運營商 –

回答

1

您發佈甚至不應該編譯,更不用說返回行的代碼。子查詢未關閉,內部查詢中無法識別行。

試試這個:

SELECT * FROM 
    (SELECT ROW_NUMBER() OVER (ORDER BY WarehouseSubType.id) as row, 
    WarehouseSubType.id, 
    WarehouseType.name as WarehouseTypename, 
    WarehouseType.alternateName AS WarehouseTypealternateName, 
    WarehouseSubType.name AS WarehouseSubTypename, 
    Warehouse.alternateName AS WarehousealternateName, 
    WarehouseSubType.alternateName AS WarehouseSubTypealternateName, 
    WarehouseSubType1.name AS WarehouseSubType1name, 
    WarehouseSubType1.alternateName AS WarehouseSubType1alternateName, 
    Warehouse.alternateName AS Warehousename, 
    Branch.name AS Branchname, 
    Branch.alternateName AS BranchalternateName, 
    WarehouseProductQuantity.actualQuantity, 
    WarehouseProductQuantity.reservedQuantity, 
    Supplier.companyName, 
    Supplier.companyNameAlternate, 
    Tafsil.description, 
    Tafsil.alternateDescription, 
    (WarehouseProductQuantity.actualQuantity - WarehouseProductQuantity.reservedQuantity) AS quantity 
    FROM WarehouseSubType 
    INNER JOIN WarehouseType 
     ON (WarehouseSubType.warehouseTypeId = WarehouseType.id) 
    INNER JOIN WarehouseSubType1 
     ON (WarehouseSubType.id = WarehouseSubType1.warehouseSubTypeId)) a 
    WHERE warehouseTypename like '%Ve%') b 
WHERE b.row > 0 and b.row< 75