في MS SQL Server، هناك مجموعة كبيرة من الدوال الرياضية (Math Functions) التي يمكن استخدامها لإجراء عمليات حسابية متنوعة. فيما يلي قائمة بأهم الدوال الرياضية في SQL Server:
1. العمليات الحسابية الأساسية
-
ABS(number)
تعيد القيمة المطلقة (بدون العلامة السالبة).
مثال:SELECT ABS(-123.45); -- 123.45
-
CEILING(number)
تقرب الرقم لأعلى عدد صحيح أقرب.
مثال:SELECT CEILING(123.45); -- 124
-
FLOOR(number)
تقرب الرقم لأسفل عدد صحيح أقرب.
مثال:SELECT FLOOR(123.45); -- 123
-
ROUND(number, decimals)
تقرب الرقم بناءً على عدد المنازل العشرية المحدد.
مثال:SELECT ROUND(123.4567, 2); -- 123.46
-
POWER(base, exponent)
ترفع الرقم إلى القوة المحددة.
مثال:SELECT POWER(2, 3); -- 8
2. الجذر التربيعي والأسس
-
SQRT(number)
تعيد الجذر التربيعي للرقم.
مثال:SELECT SQRT(16); -- 4
-
EXP(number)
تعيد العدد النيبيري مرفوعًا إلى قوة الرقم (e^number).
مثال:SELECT EXP(1); -- تقريبًا 2.718
-
LOG(number, base)
تحسب اللوغاريتم للرقم بناءً على القاعدة المحددة (default: القاعدة الطبيعية).
مثال:SELECT LOG(100, 10); -- 2 SELECT LOG(100); -- قاعدة طبيعية
-
LOG10(number)
تحسب اللوغاريتم العشري (قاعدة 10).
مثال:SELECT LOG10(1000); -- 3
3. الدوال المثلثية
-
SIN(angle)
تعيد جيب الزاوية (زاوية بالـ radians).
مثال:SELECT SIN(PI() / 2); -- 1
-
COS(angle)
تعيد جيب التمام للزاوية.
مثال:SELECT COS(PI()); -- -1
-
TAN(angle)
تعيد ظل الزاوية.
مثال:SELECT TAN(PI() / 4); -- 1
-
ATAN(number)
تعيد قوس ظل الرقم (زاوية).
مثال:SELECT ATAN(1); -- تقريبًا 0.785
-
ASIN(number)
تعيد قوس الجيب للرقم.
مثال:SELECT ASIN(1); -- تقريبًا 1.5708
-
ACOS(number)
تعيد قوس جيب التمام للرقم.
مثال:SELECT ACOS(0); -- تقريبًا 1.5708
4. قيم الثوابت الرياضية
-
PI()
تعيد قيمة π (باي).
مثال:SELECT PI(); -- تقريبًا 3.14159265358979
5. التقريب وإزالة العلامة العشرية
-
SIGN(number)
تعيد إشارة الرقم (-1 للأرقام السالبة، 0 للصفر، 1 للأرقام الموجبة).
مثال:SELECT SIGN(-123); -- -1 SELECT SIGN(123); -- 1
-
TRUNCATE(number, decimals)
تزيل العلامة العشرية حتى عدد معين من المنازل.
مثال:SELECT ROUND(123.456, 0, 1); -- 123 (TRUNCATE behavior)
6. الأرقام العشوائية
-
RAND(seed)
تعيد رقمًا عشريًا عشوائيًا بين 0 و 1 (يمكن تحديد seed لتكرار نفس القيم).
مثال:SELECT RAND(); -- رقم عشوائي
7. باقي القسمة
-
%
عامل باقي القسمة (modulus).
مثال:SELECT 10 % 3; -- 1
الخلاصة
هذه الدوال تغطي معظم الاحتياجات الرياضية في SQL Server. إذا كنت بحاجة لدوال متقدمة، يمكن دمج هذه الدوال مع الشروط والجمل الأخرى للحصول على نتائج مخصصة.