PDA

View Full Version : سوال: آوردن تعداد مشخصی رکورد از دیتابیس بصورت Random



RoostaYeBekr
سه شنبه 23 تیر 1388, 15:13 عصر
چطوری می شه که 5 تا رکورد از فلان جدول ، با فلان شرط را به صورت Random ، انتخاب کرد ؟
یعنی هم این عدد 5 تا برام مهمه و هم اینکه Random باشه .
منظورم از Random ، این است که همیشه مثلا 5 رکورد اول را که پیدا کرد ، نیاورد. بلکه اگر 10 تا رکوردی هست که در شرط مورد نظر صدق می کند ، از بقیه هم آورده شود.
مرسی

mhaeri
سه شنبه 23 تیر 1388, 15:47 عصر
با سلام
آخره Select بزن: order By NEWID()

مثال:
Select top 1000
.........
order By NEWID

RoostaYeBekr
چهارشنبه 24 تیر 1388, 07:02 صبح
ببین شما گفتید:


Select top 1000

این 1000 تا رکورد اول را می آورد . ولی من گفتم که اگر مثلا 20000000 تا رکورد داریم نمی خوام که همیشه 1000 تای اول را بیاورد . مثلا شماره رکوردها می تواند این باشد :
1 و 5 و 18 و 1000 و 1255 و ...

رضا عربلو
چهارشنبه 24 تیر 1388, 13:29 عصر
select top 10 newid() as row, ... from ....order by row

RoostaYeBekr
چهارشنبه 24 تیر 1388, 13:43 عصر
select top 10 newid() as row, ... from ....order by row

ببین من یک کواری همانند اونچه که گفتید ، نوشتم :


select top 10 newid() as Column1
from Table1
order by idr

SQL.Server داره یک جوابه اینطوری می ده و داده هام رو پس چرا نشون نمی ده ؟

silverfox
چهارشنبه 24 تیر 1388, 14:27 عصر
select top 10 idr
as Column1
from Table1
order by newid()

رضا عربلو
چهارشنبه 24 تیر 1388, 18:59 عصر
select top 10 newid() as Column1 , *
from Table1
order by Column1

silverfox
چهارشنبه 24 تیر 1388, 19:49 عصر
خب الان که رندم انتخال نمیشه با این کار شما یه ستون رندم بقل selectتون اضافه کردین...این همون


select top 10 *
from Table1
order by Column1

هست در واقع اول به صورت رندم می چینیم رکورد ها رو بعد 10تای اول رو برمی داریم