برخی از مواقع، بنا به موقعیت کاری، بکارگیری محاسبات ریاضی در پایگاه دادهها امری الزامی است. بنابراین برخی از این توابع را به شما معرفی میکنیم. در این قسمت از جدول NUM_TEST استفاده مینماییم.
B | A |
5 | -5.65 |
5.22 | 6.1 |
66.6 | 11 |
8 | .33 |
-3 | -10 |
-7 | 1.598 |
نوع دادههای این جدول شامل موارد زیر میباشد.
- فیلد A از نوع FLOAT
- فیلد B از نوع FLOAT
POWER
بوسیلهی تابع POWER میتوان، اعداد را به توان رساند. این تابع آرگومان اول را به توان آرگومان دوم میرساند.
SELECT A, B, POWER(A,B) FROM NUM_TEST;
همانگونه که مشاهده میکنید، در مثال ذیل، دادههای فیلد A، به توان دادههای فیلد B، رسیدهاند.
A B POWER(A,B)
---------- ---------- -------------
-5.65 5 -5757.6099
6.1 5.22 12572.5027
11 66.6 2.2738e+69
.33 8 .000140641
-10 -3 -.001
1.598 -7 .037500502
ABS
این تابع، قدر مطلق اعداد را بر میگرداند. مثال زیر را ببینید:
SELECT A,ABS(A) FROM NUM_TEST;
همانگونه که در زیر مشاهده میکنید، ABS تمامی اعداد را، به اعداد مثبت تبدیل میکند.
A ABS(A)
----- -------------
-5.65 5.65
6.1 6.1
11 11
.33 .33
-10 10
1.598 1.598
SQRT
بوسیلهی این تابع میتوان، جذر (ریشهی دوم) اعداد را بدست آورد. به مثال زیر توجه کنید.
SELECT A, SQRT(A) FROM NUM_TEST;
توجه داشته باشید، SQRT فقط جذر اعداد مثبت را بر میگرداند.
همانگونه که در زیر مشاهده میکنید، دستور اجرا نشده و SQL Plus به شما خطا نمایش میدهد.
SELECT A,SQRT(A)
*
ERROR at line 1:
ORA-01428: argument '-5.65' is out of range
بنابراین برای رفع این مشکل، باید قدر مطلق دادههای فیلد A را بدست آورد. به دستور زیر توجه کنید.
SELECT A, SQRT(ABS(A)) FROM NUM_TEST;
توجه داشته باشید در دستور فوق، بوسیلهی تابع ABS، اعداد منفی را تبدیل به اعداد مثبت کرده، سپس بوسیلهی تابعSQRT ، جذر آنها را بدست آوردیم. نتیجه را ببینید:
A SQRT(ABS(A))
-------- -----------
-5.65 2.3797286
6.1 2.46981781
11 3.31662479
.33 .574456265
1.598 1.26412025
SIGN
این تابع، اعداد بزرگتر از 0 را به 1+، اعداد کوچکتر از 0 را به 1-، و به ازای عدد 0، 0 را بر میگرداند. به دستور زیر توجه کنید.
SELECT B,SIGN(B) FROM NUM_TEST;
پاسخ پرسوجو را در زیر ببینید.
همانگونه که مشاهده میکنید، تابع SIGN اعداد را به 1+ و 1- تبدیل کرده است.
B SIGN(B)
------ ---------
5 1
5.22 1
66.6 1
8 1
-3 -1
-7 -1
MOD
این تابع، باقیماندهی تقسیم دو عدد را نشان میدهد. به دستور زیر توجه کنید.
SELECT A, B, MOD(A,B) FROM NUM_TEST;
در پاسخ کوئری، باقیمانده تقسیم دادههای دو فیلد A و B را مشاهده مینمایید.
A B MOD(A,B)
--------- ---------- -----------
-5.65 5 -.65
6.1 5.22 .88
11 66.6 11
.33 8 .33
-10 -3 -1
1.598 -7 1.598