PDA

View Full Version : سوال: مرتب سازی تصادفی



masoud180
سه شنبه 03 آذر 1388, 10:25 صبح
من یه دیتابیس دارم که تو یکی از جدول هاش 100 تا محصول داره و می تونم اونا بصورت تصادفی نمایش بدم.
حالا میخوام بین 20 تا محصولی که مثلاً فیلد isRandom شون true مرتب سازی تصادفی باشه و بین بقیه بر اساس تاریخ باشه کسی راه حلی داره.
کد تصادفی رابرا کل محصولات به این صورت نوشتم:
select * from Product
order by newid()

Mostafa_Dindar
چهارشنبه 04 آذر 1388, 13:45 عصر
پس این مخای برنامه نویس کجان
تاپيك رو اشباه انتخاب كردي . بايد ميرفتي sql آخه اين چه ربطي به ASP.NET داره ؟
براي شرط اولت ميتوني اينطور بنويس :

select Top 20 ProductId , ProductName , ... , from Product where IsRandom= true ORDER BY NEWID()

محمد سلیم آبادی
چهارشنبه 04 آذر 1388, 18:34 عصر
نکته ای که وجود دارد این است که ترتیب نمایش تمام سطرها چگونه است. یعنی مثلا 20 رکوردی که ترتیبشان random شده است لابلای رکورد های دیگر قرار بگیرد. یا اینکه ابتدا رکوردهایی که مخصوص رندوم هستند نمایش داده شده و روکورد های دیگر بعد از آن قرار بگیرد؟

query زیر ابتدا سطرهایی که فیلد IsRandom اشان True است را بصورت تصادفی نمایش داده سپس سطرهای باقی مانده را بر اساس ستون Date مرتب می کند.


select *
from Product
order by case IsRandom when 'True' then '1'+cast(newid() as char(36))
when 'False' then '2'+cast([date] as char(36))
end