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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

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


12 رد (ردود) على هذا الموضوع

#1 sunfoor

sunfoor

    مشترك

  • الأعضــاء
  • 122 مشاركة

تاريخ المشاركة 27 April 2009 - 04:51 PM

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

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

LTRIM
RTRIM
ROUND
TRUNC
VARIANCE
STDDEV

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

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

#2 mustafagamiel

mustafagamiel

    مشرف قسم النماذج والمشاريع

  • فريق الإشراف
  • 2,095 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 27 April 2009 - 08:21 PM

وعليكم السلام ورحمة الله وبركاته
بالنسبة لوظيفة 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, 27 April 2009 - 08:25 PM.

اللهم إن كان رزقي في الســــــــــماء فأنزله
وإن كان في الأرض فأخرجـه
وإن كان بعيدا فقربه وإن كان قريبا فيسره
وإن كان قليلا فكثره وإن كان كثيرا فبارك لي فيه

اللـــهم آمين
لا إله إلا الله وحده لاشريك له- له الملك وله الحمد وهو على كل شيء قدير
لا إله إلا أنت سبحانك-- إني كنت من الظالمين






#3 sunfoor

sunfoor

    مشترك

  • الأعضــاء
  • 122 مشاركة

تاريخ المشاركة 28 April 2009 - 08:31 AM

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

بس لسه ما فهمت وظيفة 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:

شكرا جزيلا

#4 mustafagamiel

mustafagamiel

    مشرف قسم النماذج والمشاريع

  • فريق الإشراف
  • 2,095 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 28 April 2009 - 08:39 AM

ال 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, 28 April 2009 - 08:41 AM.

اللهم إن كان رزقي في الســــــــــماء فأنزله
وإن كان في الأرض فأخرجـه
وإن كان بعيدا فقربه وإن كان قريبا فيسره
وإن كان قليلا فكثره وإن كان كثيرا فبارك لي فيه

اللـــهم آمين
لا إله إلا الله وحده لاشريك له- له الملك وله الحمد وهو على كل شيء قدير
لا إله إلا أنت سبحانك-- إني كنت من الظالمين






#5 sunfoor

sunfoor

    مشترك

  • الأعضــاء
  • 122 مشاركة

تاريخ المشاركة 29 April 2009 - 07:47 AM

صحيح النتائج مو واضحة بحاول ان شاء الله أجربهم على SQL

عموما شكرا جزيلا لك .

أشوفك في استفسار أخر ان شاء الله .

أختك : sunfoor

#6 t-hassaan

t-hassaan

    عضو نشط

  • الأعضــاء
  • 318 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 29 April 2009 - 09:05 AM

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

#7 TROYMAN

TROYMAN

    مشترك

  • الأعضــاء
  • 107 مشاركة

تاريخ المشاركة 29 April 2009 - 09:44 AM

السلام عليكم...

جربي هذا : من هنا


<<اللهم لا علـم لنا إلا ما علّمتنا إنك أنت العليــم الحكيــم>>
<<اللهم علّمنا ما ينفعنا و انفعنا بما علّمتنا و ازدنا علماً>>



Programmer (C#.Net,C++,ASP) & Oracle Developer


#8 sunfoor

sunfoor

    مشترك

  • الأعضــاء
  • 122 مشاركة

تاريخ المشاركة 30 April 2009 - 07:24 PM

:rolleyes: مشكوريين إخواني ما قصرتوا
تقريبا فهمت الفرق بين round & trunc

إلى اللقاء في سؤال أخر ..

#9 sunfoor

sunfoor

    مشترك

  • الأعضــاء
  • 122 مشاركة

تاريخ المشاركة 30 April 2009 - 07:29 PM

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

وهي :

instr (string1,string2 ) and
ECIL
FLOOR

MOD

شكرا لكم

أختكم : sunfoor

#10 TROYMAN

TROYMAN

    مشترك

  • الأعضــاء
  • 107 مشاركة

تاريخ المشاركة 01 May 2009 - 11:49 AM

بالنسبة للـ 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('Example@mail.com',instr('Example@mail.com','@')+1,(instr('Example@mail.com','.')
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


<<اللهم لا علـم لنا إلا ما علّمتنا إنك أنت العليــم الحكيــم>>
<<اللهم علّمنا ما ينفعنا و انفعنا بما علّمتنا و ازدنا علماً>>



Programmer (C#.Net,C++,ASP) & Oracle Developer


#11 sunfoor

sunfoor

    مشترك

  • الأعضــاء
  • 122 مشاركة

تاريخ المشاركة 02 May 2009 - 08:08 AM

مشكور أخوي على الرد والمساعدة ولو لني لسه ما فهمت وظيفة instr function
ياريت لو تبسط لي اياها

وشكرا .

#12 TROYMAN

TROYMAN

    مشترك

  • الأعضــاء
  • 107 مشاركة

تاريخ المشاركة 02 May 2009 - 12:18 PM

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


وظيفته هي البحث عن حرف معين ضمن سلسلة معينة,فإذا وجد هذا الحرف يرجع مكانه ضمن السلسلة و إذا لم يجده يرجع 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.


<<اللهم لا علـم لنا إلا ما علّمتنا إنك أنت العليــم الحكيــم>>
<<اللهم علّمنا ما ينفعنا و انفعنا بما علّمتنا و ازدنا علماً>>



Programmer (C#.Net,C++,ASP) & Oracle Developer


#13 sunfoor

sunfoor

    مشترك

  • الأعضــاء
  • 122 مشاركة

تاريخ المشاركة 02 May 2009 - 12:51 PM

مشكور اخي الكريم ألحين فهمت