PDA

View Full Version : انتخاب رکورد دهم تا بیستم از یک جدول



hamednazarzadeh
یک شنبه 01 خرداد 1390, 10:30 صبح
با سلام خدمت دوستان عزیز
من می خوام رکورد دهم تا بیستم یک جدول با بانک اطلاعاتی sql رو بخونم . ولی نمیدونم دستور select برای این کار رو چطوری بنویسم . لطفا راهنمایی بفرمایید.ممنون

یوسف زالی
یک شنبه 01 خرداد 1390, 10:42 صبح
سلام.
برای این کار از این استفاده کن:



select top 20 *
from TBL
except
select top 10 *
from TBL

Galawij
یک شنبه 01 خرداد 1390, 12:28 عصر
Select * From(
Select row_number () over(Order by dbo.TableName.IdTableName)as row_number, FieldsName
)result Where(row_number >10 AND row_number <=20)

sajjad_kochekian
شنبه 11 تیر 1390, 23:38 عصر
Select * From(
Select row_number () over(Order by dbo.TableName.IdTableName)as row_number, FieldsName
)result Where(row_number >10 AND row_number <=20)

اين دستور به من جواب نداد اشكال كار كجاست
Select * From(
Select row_number () over(Order by dbo.amaliat.Code)as row_number, code
)result Where(row_number >10 AND row_number <=20)

behrouzlo
یک شنبه 12 تیر 1390, 10:10 صبح
دستور صحیح می باشد اما اگر از نسخه های قبل از 2005 استفاده ی کنید row_number در آن نسخه ها پشتیبانی نمی شود

محمد سلیم آبادی
جمعه 17 تیر 1390, 20:14 عصر
سطر 10 تا 20 بر چه اساسی؟
با فرض اینکه بر پایه ی مقادیر ستون اصلی بصورت نزولی میخواهید به هر سطر امتیاز بدین و سطرهایی که در رده ی بین 10 و 20 قرار دارن انتخاب بشن. بعداز روش ROW Number روش زیر رو پیشنهاد می کنم:

SELECT TOP 10 *
FROM
(SELECT TOP 20 *
FROM TableName
ORDER BY Col
)D
ORDER BY Col DESC;

Galawij
شنبه 18 تیر 1390, 12:09 عصر
سطر 10 تا 20 بر چه اساسی؟
با فرض اینکه بر پایه ی مقادیر ستون اصلی بصورت نزولی میخواهید به هر سطر امتیاز بدین و سطرهایی که در رده ی بین 10 و 20 قرار دارن انتخاب بشن. بعداز روش ROW Number روش زیر رو پیشنهاد می کنم:

1
SELECT TOP 10 *FROM(SELECT TOP 20 *FROM TableNameORDER BY Col)DORDER BY Col DESC;


اگر گزینه Identity Specification فیلد کلید اصلی فعال باشه، استفاده از تابع row_number درست درمی یاد.
روش جالبی بود ممنون.

mmd2009
شنبه 18 تیر 1390, 15:42 عصر
با سلام

از این روش هم میتونید برید :


;WITH NonTable AS
(
select ROW_NUMBER() over (order by Datesnd )[RowId],* from tblAsnad

)

select * from NonTable
where [RowId] between 10 and 20

fakhravari
چهارشنبه 02 آذر 1390, 11:36 صبح
با سلام
اگر حالا بخواهیم فقط 5 رکورد آخر نمایش بده که با درستور select top میشه.
اگر بخواهیم بعد 5 پست اخر یعنی میشه 6 تا 10 رو نمایش بده چی کار باید کرد:گیج::متفکر: چون ما شماره رکورد نداریم که بازه تعیین کنیم

fakhravari
چهارشنبه 02 آذر 1390, 16:02 عصر
با سلام
از دوستان گل کسی نبود:بوس: