PDA

View Full Version : سوال: انتخاب تصادفی سطر



htmbarnamenevisl
چهارشنبه 19 خرداد 1389, 10:52 صبح
سلام
من میخوا یه رکورد رو به تصادف از جدولی انتخاب کنم و برگردونم
گفتن با tablesample میشه اما من نتونستم چون با تعداد سطر زیر ده تا کار نمیکنه و بیشتر از ده تا هم تمام رکوردهای جدول برمیگردونه
راهنماییم کنید من میخواد رکورد انتخابیم با رکورد دفعه قبلیم متفاوت باشه

محمد سلیم آبادی
چهارشنبه 19 خرداد 1389, 11:40 صبح
سلام،

من میخواد رکورد انتخابیم با رکورد دفعه قبلیم متفاوت باشه
برای این منظور بایستی رکورد قبلی داخل یک جدول موقت ذخیره بشه تا برای تولید سطر تصادفی بعدی از آن استفاده بشه.

برای برگداندن یک سطر از جدول به شکل تصادفی از دستور خیلی ساده ی زیر استفاده کنید:

SELECT TOP 1 *
FROM table_name
ORDER BY ABS(CHECKSUM(NEWID()))

حالا با این فرض که سطری که قبلا انتخاب شده در جدول موقت وجود داره و ما نمی خواهیم سطر تصادفی فعلی با قبلی یکسان باشد، پس از این کد استفاده می کنیم:


SELECT TOP 1 *
FROM table_name T1
WHERE NOT EXISTS (SELECT *
FROM temp_table
WHERE col1 = t1.col1
AND col2 = t2.col2
AND .... )
ORDER BY ABS(CHECKSUM(NEWID()));