استفاده از تابع اعداد تصادفی در random number in sql

تازه ها

استفاده از تابع اعداد تصادفی در random number in sql

نظرات ()

شاید شما هم مثل من گیر کرده باشید که از توابع ایجاد اعداد تصادفی برای انتخاب اطلاعات استفاده کنید . مثلا نمایش تصادفی کاربران !

خوب باید بگم استفاده از تابع rand توی sql اصلا به کارتون نمیاد . قبل از اینکه مثل من کلی کلنجار برید با سیستم بهتون پیشنهاد می کنم از تابع NewID که یک GUID - یک رشته عددی تصادفی که هرگز تکرار نمیشه - برای این کار استفاده کنید .

روش غلط :

select *
 from dbo.users  order by Rand()

روش درست :

select *
 from dbo.DS_Shop_Product  order by NEWID()

حالا اگه می خواید که یه عدد تصادفی رو در میان select داشته باشید بازم تابع rand به کارتون نمیاد . چون تو تمام رکورد ها یک عدد مشترک رو بر می گردونه . برای اینکارم پیشنهاد می کنم از این روش استفاده کنید :

SELECT TOP 10 ABS(CAST(CAST(NEWID() AS VARBINARY) AS INT)) AS [RandomNumber],
       [CustomerID], [CompanyName], [ContactName]
FROM [dbo].[Customers]

 برای مشاهده مثال کاملتر به اینجا مراجعه کنید : Generate Random Numbers

توضیحات :

این تابع مخصوص اسکیوال سروره ماکروسافته و برای مطالعه روشهای دیگه در زبانهای مدیریت دیتابیس  به SQL to Select a random row from a database table مراجعه کنید