20-01-14, 12:09 PM
السلام عليكم ورحمة الله وبركاتة
موضوعي قديم بعض الشيء
وهو كيفية استنتاج ارقام عشوائية في ال TSQL
انتجت لنا مايكروسوفت دالة او ال Function المسماة Rand وهي اختصار لل random (( العشوائية )) وهي تفيد في انتاج ارقام عشرية صحيحة
الصيغة العامة التاية التي تكتب بها هي
RAND ( [ seed ] )
وكمثال جرب الكود التالية كما في الصورة
تفيد هذة الدالة في انشاء ارقام عشوائية ينتجها محرك ال SQL Server مما يسرع لدينا سرعه الاستعلام لان المعالجة تتم فقط في ال SQL Server كما في الشكل اعلاة
هنالك العديد من الطرق لانتاج هذة الرقام وسناخذ الامثلة الكافية اليها
طريقة 1 انتاج ارقام عشوائية بشكل INT
SELECT CAST(RAND() * 1000 AS INT) AS [RandomNumber]
طريقة 2 في حال اردنا رقم عشوائي ثابت عن طريق تحديد الخاصية Seed لنلاحظ المثال التالي
SELECT RAND(1) AS [RandomNumber]
وكفكرة اخرى في انتاج ارقام ثابتة لاحصائيات جدول معين كما في المثال التالي
Select RAND()as [RandomNumber] ,ID_Fied from TBL_name
لاحظ في كل مرة نقوم فيها بعرض الجدول يتغير التعداد
افكار اخرى طريقة 3
انتاج ارقام عشوائية محصورة بين قيمتين جرب الكود التالي
DECLARE @Random INT;
DECLARE @Upper INT;
DECLARE @Lower INT
SET @Lower = 1 —- ادنى قيمة
SET @Upper = 999 —- اعلى قيمة
SELECT @Random = ROUND(((@Upper – @Lower -1) * RAND() + @Lower), 0)
Print @Random
افكار واكواد اخرى استخلاص الرقم العشوائي من تاريخ ووقت الحاسبة
SELECT RAND( (DATEPART(mm, GETDATE()) * 100000 )
+ (DATEPART(ss, GETDATE()) * 1000 )
+ DATEPART(ms, GETDATE()) )
وك دالة اخرى في استنتاج ارقام عشوائية نستخدم NEWID() الصيغة القواعدية لها هي كالتالي
NEWID()
لكن فرقها عن الاولى في انها تنتج ارقام عشوائية بصيغة ال Hexadecimal اي الارقام الستة عشر
لنجرب المثال التالي
لنحاول تقريب النتاج الى عشرية كما في الكود التالي
SELECT CAST(CAST(newid() AS binary(4)) AS int)
وكفكرة في استخدام الرقام العشوائية لدينا بعض مواقع الويب تحتاج الى ادخال اسم العضو ومن ثم ارسال passowrd لهذا الاسم على الايميل
ففكرة الارقام العشوائية سوف تفيدنا هنــا
شكراً لكم وارجوا منكم دعائكم الكريم
موضوعي قديم بعض الشيء
وهو كيفية استنتاج ارقام عشوائية في ال TSQL
انتجت لنا مايكروسوفت دالة او ال Function المسماة Rand وهي اختصار لل random (( العشوائية )) وهي تفيد في انتاج ارقام عشرية صحيحة
الصيغة العامة التاية التي تكتب بها هي
RAND ( [ seed ] )
وكمثال جرب الكود التالية كما في الصورة
تفيد هذة الدالة في انشاء ارقام عشوائية ينتجها محرك ال SQL Server مما يسرع لدينا سرعه الاستعلام لان المعالجة تتم فقط في ال SQL Server كما في الشكل اعلاة
هنالك العديد من الطرق لانتاج هذة الرقام وسناخذ الامثلة الكافية اليها
طريقة 1 انتاج ارقام عشوائية بشكل INT
SELECT CAST(RAND() * 1000 AS INT) AS [RandomNumber]
طريقة 2 في حال اردنا رقم عشوائي ثابت عن طريق تحديد الخاصية Seed لنلاحظ المثال التالي
SELECT RAND(1) AS [RandomNumber]
وكفكرة اخرى في انتاج ارقام ثابتة لاحصائيات جدول معين كما في المثال التالي
Select RAND()as [RandomNumber] ,ID_Fied from TBL_name
لاحظ في كل مرة نقوم فيها بعرض الجدول يتغير التعداد
افكار اخرى طريقة 3
انتاج ارقام عشوائية محصورة بين قيمتين جرب الكود التالي
DECLARE @Random INT;
DECLARE @Upper INT;
DECLARE @Lower INT
SET @Lower = 1 —- ادنى قيمة
SET @Upper = 999 —- اعلى قيمة
SELECT @Random = ROUND(((@Upper – @Lower -1) * RAND() + @Lower), 0)
Print @Random
افكار واكواد اخرى استخلاص الرقم العشوائي من تاريخ ووقت الحاسبة
SELECT RAND( (DATEPART(mm, GETDATE()) * 100000 )
+ (DATEPART(ss, GETDATE()) * 1000 )
+ DATEPART(ms, GETDATE()) )
وك دالة اخرى في استنتاج ارقام عشوائية نستخدم NEWID() الصيغة القواعدية لها هي كالتالي
NEWID()
لكن فرقها عن الاولى في انها تنتج ارقام عشوائية بصيغة ال Hexadecimal اي الارقام الستة عشر
لنجرب المثال التالي
لنحاول تقريب النتاج الى عشرية كما في الكود التالي
SELECT CAST(CAST(newid() AS binary(4)) AS int)
وكفكرة في استخدام الرقام العشوائية لدينا بعض مواقع الويب تحتاج الى ادخال اسم العضو ومن ثم ارسال passowrd لهذا الاسم على الايميل
ففكرة الارقام العشوائية سوف تفيدنا هنــا
شكراً لكم وارجوا منكم دعائكم الكريم
مدونتي
صفحتي على الفيسبوك
MCTS SQL Server 2008
MCSA SQL Server 2012
Microsoft Certified Trainer
SharePoint Administrator
صفحتي على الفيسبوك
MCTS SQL Server 2008
MCSA SQL Server 2012
Microsoft Certified Trainer
SharePoint Administrator