PDA

View Full Version : انتخاب چند سطر خاص از دیتابیس



Yama12
دوشنبه 16 اردیبهشت 1387, 13:00 عصر
سلام
من میخوام مثل کن زیر:


SELECT TOP 10 * From Table1

که 10 تای اول رو انتخاب میکنه
من میخوام 10 تای دووم رو انتخاب کنم
یا 3وم یا مثله این
درضمن از کلید اصلی استفاده نمیکنم
یا فیلدی مثله آیدی ندارم که بگم از 10 تا 20 رو برام سلکت کنه

hdv212
دوشنبه 16 اردیبهشت 1387, 13:57 عصر
شما باید این سوال رو در بخش Sql Server مطرح کنی، ولی در جواب شما، باید بگم که باید در کدت، اطلاعاتت رو Paging کنی، با این نمونه دستور کار کن :

DECLARE @PageNum AS INT;
DECLARE @PageSize AS INT;
SET @PageNum = 1;
SET @PageSize = 10;

WITH OrdersRN AS
(
SELECT ROW_NUMBER() OVER(ORDER BY OrderDate, OrderID) AS RowNum
,OrderID
,OrderDate
,CustomerID
,EmployeeID
FROM Orders
)

SELECT * FROM OrdersRN
WHERE RowNum BETWEEN (@PageNum - 1) * @PageSize + 1
AND @PageNum * @PageSize
ORDER BY OrderDate,OrderID;



-- This is for Reading Data from Sales.SalesOrderDetail in AdventureWorks database.
DECLARE @PageNum AS INT;
DECLARE @PageSize AS INT;
SET @PageNum = 1;
SET @PageSize = 10;

WITH OdRN AS(
SELECT ROW_NUMBER() OVER(ORDER BY SalesOrderID,SalesOrderDetailID) AS RowNum
,SalesOrderID,SalesOrderDetailID,OrderQty,Modified Date
FROM Sales.SalesOrderDetail)

SELECT * FROM OdRN
WHERE RowNum BETWEEN (@PageNum - 1) * @PageSize + 1
AND @PageNum * @PageSize
ORDER BY SalesOrderID,SalesOrderDetailID;

در خط سوم، مقدار PageNum، صفحه ی مورد نظر رو نشون میده که باید کدوم صفحه از رکوردها رو لود کنی. میزان رکوردهای لود شده در صفحه هم که 10 تاست.