الانتقال إلى المحتوى

إخواني احتاج لمساعدتكم لمعرفة بعض Functions


sunfoor

Recommended Posts

السلام عليكم ورحمة الله
اخواني انا حاليا ادرس لغة الأوراكل وطبعا لسه مبتدئة . ;)
وأخذنا functions (string,arirthmatic,data, aggregate) انواع functions

اريد أعرف ما وظيفة كلا من :

LTRIM
RTRIM
ROUND
TRUNC
VARIANCE
STDDEV

شو معناهم وشو وظيفتهم مع إعطاء مثال لكل واحد
أرجو الإهتمام بالموضوع لأنه مطلوب من قبل المدرس

أنتظر الردود
أختكم : sunfoor
;)

رابط هذا التعليق
شارك

وعليكم السلام ورحمة الله وبركاته
بالنسبة لوظيفة TRIM هي حذف مثلا الفراغات أو أحرف معينة من الجملة
مثال

SQL> SELECT TRIM('A' FROM 'AHMED') FROM DUAL;

TRIM
----
HMED

SQL> SELECT TRIM('A' FROM 'MUSTAFA') FROM DUAL;

TRIM('
------
MUSTAF

SQL> SELECT TRIM ('H' FROM 'AHMED') FROM DUAL;

TRIM(
-----
AHMED

SQL> SELECT TRIM ('A' FROM 'ALAA') FROM DUAL;

T
-
L



المعنى أنها تحذف إما على اليمين أو الشمال لكن لاعرف لو كان في LTRIM OR RTRIM زي الفيجوال جرتها لكن أعطاني خطأ


ROUND وظيفتها أنه بتعمل تقريب فستجد على اليمين مقدار التقريب
فمثلا لو 2 يتم العد مابعد العلامة العشرية برقمين ويينظر للرقم الثالت ويشوف هل الرقم الثالث يستطيع عمل تقريب ويغير في الرقم الثاني أم لا
لاحظ لو القيمة بالسالب فإنه هيمشي عاى يسار العلامة العشرية فمثلا لو -1 هيمشي على يسار العلامة العشرية برقم واحد ويشوف هذا الرقم مقرب لخانة العشرات فمثلا ال 5 ستقرب إلى 10 فتجعل الرقم 100 وهكذا

SELECT round(95.923,2) first,round(95.923,1) second ,round(95.923,0) third, round(95.923,-1) fourth,round(95.923,-2) five from dual ;



ال trunc زي ال round لكنها لاتقرب بل تستقطع مباشرة دون تقريب مثال

SELECT trunc(95.923,2) first,trunc(95.923,1) second ,trunc(95.923,0) third, trunc(95.923,-1) fourth,trunc(95.923,-2) five from dual ;




VARIANCE
التباين

SQL> select VARIANCE(salary) from employees; VARIANCE(SALARY)
----------------
15283140.5




STDDEV ==standaerd deviation الانحراف المعياري

SQL> select STDDEV(salary) from employees; STDDEV(SALARY)
--------------
3909.36575

تم تعديل بواسطة mustafagamiel
رابط هذا التعليق
شارك

مشكور أخوي مصطفى جزاك الله خير ...

بس لسه ما فهمت وظيفة Round , trunc

SELECT round(95.923,2) first,round(95.923,1) second ,round(95.923,0) third, round(95.923,-1) fourth,round(95.923,-2) five from dual
ما فهمت المثال!!! كيف لازم يطلع الناتج ؟؟
نفس الحال بالنسبة لل trunc !!! ما فهمت المثال

معليش لو تعيد شرحهم مرة ثانية مع اعطاء الناتج :rolleyes:

شكرا جزيلا

رابط هذا التعليق
شارك

ال round بتعمل تقريب لاقرب رقم صحيح على حسب ماالعدد الذي بعد الفاصلة , وبالفعل أرفقت النتائج لكن لم تظهر بشكل كويس
نتائج ال round

FIRST        SECOND       THIRD     FOURTH       FIVE
--------- ---------- ---------- ---------- ----------
   95.92       95.9            96               100         100





ال trunc لاتقرب خالص بل تستقطع أيضا على حسب العدد المذكور بعد الفاصلة ,
نتائج الاستعلام هي

FIRST       SECOND      THIRD     FOURTH       FIVE
---------- ---------- ---------- ---------- ----------
                 95.92       95.9              95           90                   0






للاسف أيضا النتائج غير واضحة
أتمنى التجربة على ال sql كي تري النتيجة أفضل من هذا

تم تعديل بواسطة mustafagamiel
رابط هذا التعليق
شارك

جربى
select trunc(90.1) , trunc(90.6) from dual ;
تعطى 90 فى الحالتين حيث انها تقوم بحذف الكسر
اما
select round(90.1) , round(90.6) from dual
تعطى 90 فى الحالة الاولى و 91 فى الحالة الثاتية حيث اتها تقوم بالتقريب الى اقرب رقم صحيح
هذه ايسط صور وممكن استخدامها بصورة اعقد ولكن اعرفى الفرق ده كبداية

رابط هذا التعليق
شارك

:rolleyes: مساء الخير إخواني

عندي سؤال أخر في function انا ما فهمتها من المدرسة الي تشرح ممكن تفهموني وظيفتها مع إعطاء مثال

 

وهي :

 

instr (string1,string2 ) and

ECIL

FLOOR

 

MOD

 

شكرا لكم

 

أختكم : sunfoor

رابط هذا التعليق
شارك

بالنسبة للـ Instr :
هذا التابع يقوم بإرجاع مكان توارد السلسلة الثانية ضمن السلسلة الأولى .
في حال كانت السلسلة الثانية عبارة عن محرف وحيد فيقوم التابع بإرجاع مكان وجوده في السلسة الأولى,
و إذا كانت السلسلة الثانية هي عبارة عن أكثر من محرف فيقوم التابع بإرجاع بداية هذه السلسلة

1* select instr('oracle','a') "Index Of" from dual SQL> /

 Index Of
----------
        3
-------------------------------------
 1* select instr('oracle','cl') "Index Of" from dual SQL> /

 Index Of
----------
        4



الحالة الأولى هي تمرير باراميترين فقط إلى هذا التابع , الباراميتر الأول هو السلسلة المراد البحث ضمنها, والثاني هو السلسلة المراد البحث عنها.
الباراميتر الثالث هو لتحديد المكان الذي سوف نبدأ منه بالبحث و يأخذ قيمة 1 إذا لم نقم بتحديده (أي إفتراضياً يبدأ البحث من أول السلسلة

1* select instr('abcabc','a',1) "Index Of" from dual SQL> /

 Index Of
----------
        1
-------------------------------------
 1* select instr('abcabc','a',2) "Index Of" from dual SQL> /

 Index Of
----------
        4



أما الباراميتر الرابع هو التوارد , وهو افتراضياً 1 أي التوراد الأول للسلسة الثانية ضمن الأولى .و المثال التالي يوضح هذا الكلام:

1* select instr('abc abc abc','a',1,1) "Index Of" from dual SQL> /

 Index Of
----------
        1
-------------------------------------
 1* select instr('abc abc abc','a',1,2) "Index Of" from dual SQL> /

 Index Of
----------
        5
-------------------------------------
 1* select instr('abc abc abc','a',1,3) "Index Of" from dual SQL> /

 Index Of
----------
        9




و تأتي أهمية هذا التابع مع تابع Substr الذي يقوم باقتطاع سلسلة من أخرى .
لإقتطاع اسم مخدم البريد الإالكتروني من العنوان :

1* select substr('[email protected]',instr('[email protected]','@')+1,(instr('[email protected]','.')
SQL> /

Mail Server
----
mail





تابع الـMod يستخدم من أجل الحصول على باقي القسمة

1* select mod(7,4) from dual SQL> /

 MOD(7,4)
----------
        3




تابع الـ Floor يقرب إلى أدنى قيمة عشرية أي 3.8 تصبح 3
أما تابع الـ Ceil فهو يقرب إلى أعلى قيمة عشرية أي 3.8 تصبح 4

رابط هذا التعليق
شارك

ياريت لو تبسط لي اياها


وظيفته هي البحث عن حرف معين ضمن سلسلة معينة,فإذا وجد هذا الحرف يرجع مكانه ضمن السلسلة و إذا لم يجده يرجع 0

SQL> select instr('HelloWorld','W') from dual; result
-----------------------
                     6



1* select instr('HelloWorld','M') from dual SQL> /

result
-----------------------
                     0





هذا المثال يستعرض الموظفين الذين لهم اسم فيه على الأقل حرف 'A' واحد

1* select ename from emp where instr(ename,'A')<>0
SQL> /

ENAME
----------
ALLEN
WARD
MARTIN BLAKE
CLARK
ADAMS
JAMES

7 rows selected.
رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية