PDA

View Full Version : تولید اعداد تصادفی با Query



AmirAh
پنج شنبه 25 مهر 1392, 23:42 عصر
سلام دوستان
من یک جدول خالی و بدون رکورد دارم که دارای یک فیلد عددی bigint است
آیا میتوانم از طریق نوشتن یک کوئری ، تعدادی رکورد (مثلا 10000 عدد) حاوی عدد تصادفی در این جدول ایجاد کنم که با هم متفاوت و غیر تکراری باشند؟
ممنون از لطف شما

tooraj_azizi_1035
جمعه 26 مهر 1392, 16:07 عصر
SELECT CONVERT(BIGINT,CONVERT(BINARY(8), NEWID())) AS Random, Name FROM Test

/* EXAMPLE RESULTS

Random Name
-------------------- ----
-7594016697478730431 Bob
7612722008485863494 Mel
-4029374675441831097 Sam
-5991042230082790833 Jim
1520621435107131057 Sue
-4874896925904449981 Tim

*/


And maybe this one:


SELECT ABS(CONVERT(BIGINT,CONVERT(BINARY(8), NEWID()))) % 10 AS Random, Name FROM Test

/* EXAMPLE RESULTS

Random Name
-------------------- ----
5 Bob
1 Mel
8 Sam
2 Jim
0 Sue
0 Tim

*/


Follow:http://blogs.lessthandot.com/index.php/DataMgmt/DataDesign/sql-server-set-based-random-numbers

AmirAh
جمعه 26 مهر 1392, 20:20 عصر
سلام
با تشکر از پاسخ شما

حال اگر بخواهیم اعداد تولید شده در یک محدوده خاص باشد (مثلا بین 1000 تا 9000) چه باید کرد؟

و سوال دیگر اگر بخواهیم اعداد تولید شده در جدول قرار بگیرد ، چه باید کرد؟

ممنون از لطف شما

AmirAh
جمعه 10 آبان 1392, 23:58 عصر
سلام دوستان

دیدم که این تاپیک به نتیجه نرسید و این موضوع میتواند تکنیکی کاربردی و کارا در تولید نرم افزار باشد به همین جهت خواستم یکبار دیگر از دوستانی که واردتر هستند تقاضای توجه و کمک کنم

**** اگر بخواهیم اعداد تولید شده در یک محدوده خاص باشد (مثلا بین 1000 تا 9000) چه باید کرد؟

**** اگر بخواهیم اعداد تولید شده در جدول قرار بگیرد (INSERT)،که با هم متفاوت و غیر تکراری باشند؟ چه باید کرد؟

ممنون از لطف شما

حمیدرضاصادقیان
شنبه 11 آبان 1392, 21:45 عصر
سلام.
روشهای پست 2 هم روشهای خوبیه ولی خود SQL Server تابعی به نام Rand داره که میتونید ازش استفاده کنید.
به عنوان مثال :

select cast(rand() * 8999 + 1000 as int)


برای توضیحات بیشتر نیز پیشنهاد میکنم اینجا (http://msdn.microsoft.com/en-us/library/ms179377(v=sql.105).aspx) و اینجا (http://blog.sqlauthority.com/2007/04/29/sql-server-random-number-generator-script-sql-query/) رو ببینید.