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

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

صورة
- - - - -

محتاج شرح تفصيلى للدالة MOD


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

#1 mohamed.ali

mohamed.ali

    مشترك

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

تاريخ المشاركة 14 November 2010 - 05:28 AM

السلام عليكم ،،،

من فضلكم يا جماعة محتاج شرح تفصيلى للدالة MOD
أنا أعرف إنها تستخدم لحساب باقى القسمة بس مش فاهم
كيف يكون التطبيق أو الإستفادة منها فى إيـــه!!
يارييت لو فى أمثله

وشكراً B)

#2 amirsheta

amirsheta

    عضو

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

تاريخ المشاركة 15 November 2010 - 10:39 PM

وعليكم السلام

زى ما قلت ان الدالة (MOD) بتستخدم فى حساب باقى القسمة

بس الإستخدام الشائع للدالة فى ان

- هل الرقم زوجى ام فردى
- فى حصول على كل القيم الزوجية او الفردية من الجدول

والأمثلة على كده :-
المثال (1)

SQL> select MOD(8, 2) from dual;

  MOD(8,2)
----------
         0

فى حالة قسمة الأرقام الزوجية (2-4-6-8-10- ) على رقم (2)

الدلة لازم بترجع القيمة (صفر)

SQL> select MOD(7,2) from dual;

  MOD(7,2)
----------
         1

SQL> select MOD(13, 2) from dual;

  MOD(13,2)
----------
         1

فى حالة قسمة الأرقام الفردية (3-5-7-9-11-) على الرقم (2)
الدلة لازم بترجع القيمة (1)

المثال (2)
SQL> create table emp
  2  ( empno      NUMBER(4)    constraint E_PK primary key
  3  , ename      VARCHAR2(8)
  4  , init       VARCHAR2(5)
  5  , job        VARCHAR2(8)
  6  , mgr        NUMBER(4)
  7  , bdate      DATE
  8  , sal        NUMBER(6,2)
  9  , comm       NUMBER(6,2)
 10  , deptno     NUMBER(2)    default 10
 11  ) ;

Table created.

SQL> insert into emp values(1,'Tom','N',   'Coder', 13,date '1965-12-17',  800 , NULL,  20);

1 row created.

SQL> insert into emp values(2,'Jack','JAM', 'Tester',6,date '1961-02-20',  1600, 300,   30);

1 row created.

SQL> insert into emp values(3,'Wil','TF' ,  'Tester',6,date '1962-02-22',  1250, 500,   30);

1 row created.

SQL> insert into emp values(4,'Jane','JM',  'Designer', 9,date '1967-04-02',  2975, NULL,  20);

1 row created.

SQL> insert into emp values(5,'Mary','P',  'Tester',6,date '1956-09-28',  1250, 1400,  30);

1 row created.

SQL> insert into emp values(6,'Black','R',   'Designer', 9,date '1963-11-01',  2850, NULL,  30);

1 row created.

SQL> insert into emp values(7,'Chris','AB',  'Designer', 9,date '1965-06-09',  2450, NULL,  10);

1 row created.

SQL> insert into emp values(8,'Smart','SCJ', 'Coder', 4,date '1959-11-26',  3000, NULL,  20);

1 row created.

SQL> insert into emp values(9,'Peter','CC',   'Designer',NULL,date '1952-11-17',  5000, NULL,  10);

1 row created.

SQL> insert into emp values(10,'Take','JJ', 'Tester',6,date '1968-09-28',  1500, 0,     30);

1 row created.

SQL> insert into emp values(11,'Ana','AA',  'Coder', 8,date '1966-12-30',  1100, NULL,  20);

1 row created.

SQL> insert into emp values(12,'Jane','R',   'Manager',   6,date '1969-12-03',  800 , NULL,  30);

1 row created.

SQL> insert into emp values(13,'Fake','MG',   'Coder', 4,date '1959-02-13',  3000, NULL,  20);

1 row created.

SQL> insert into emp values(14,'Mike','TJA','Manager',   7,date '1962-01-23',  1300, NULL,  10);

1 row created. 

SQL>
SQL> select empno as odd_empno
  2  ,      ename
  3  from   emp
  4  where  mod(empno,2) = 1;

 ODD_EMPNO ENAME
---------- --------
         1 Tom
         3 Wil
         5 Mary
         7 Chris
         9 Peter
        11 Ana
        13 Fake

7 rows selected

فى المثال الثانى
الدالة (MOD) بترجع الموظفيين اللى ارقامهم فردية


اتمنى ان اكون وصلتلك المعلومة صح

أسأل الله العظيم ربّ العرش العظيم ان يرزفني العمل الصالح والمناسب لقدراتي بمايرضي الله
إنه الحليم الكريم لا إله إلا هو وهو على كل شيء قدير
وبالإجابة جدير ليس كمثله شيء وهو السميع البصير .



Amir Sheta

Oracle Developer

Oracle ADF Developer


#3 mohamed.ali

mohamed.ali

    مشترك

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

تاريخ المشاركة 16 November 2010 - 01:06 AM

أشكرك أخويا أمير على تعبك معايا B)
وأنا فعلت فهمت كتير ،،
يعنى ممكن نقول أن الفورمة بتاعتها كالتالى :
(2,رقم زوجى)MOD= صفر
(2,رقم فردى)MOD= واحد
وبكده أنا ممكن أستعلم عن الأرقام الفرديه والزوجية .. كما هو فى المثال .
بس إيه يكون فى حالة تغير رقم 2
مثلا : MOd(1600,300) الناتج يكون 100 كيف؟
النتيجه ده جت إزاى!؟

مع إننا لوقسمنا 1600/300= 5.34 تقريباو ما معنى باقى قسمة رقم على رقم؟
معلش أنا عايز أفهمها أكتر .. وأنا عارف إنى تعبتكم من كتر علامات الاستفهام فوق
فاصبروا واحتسبوا وجزاكم الله خيرا
وشكرا ..

#4 amirsheta

amirsheta

    عضو

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

تاريخ المشاركة 16 November 2010 - 02:27 AM

فى حالة القسمة ونرمز له بالرمز (/) وبنحصل فقط على ناتج القسمة

1600/300 = 5.36
اما فى حالة باقى القسمة ونرمز له بالرمز (%)
لو حصلت على ناتج القسمة سهل احصل على باقى القسمة

1600%300 = 100 
فناتج القسمة هنا بيكون (5) من غير كسور وليس (5.36)

اما باقى القسمة
1600 - (5*300)
1600 - 1500
= 100

ودى طريقة سريعة لحساب باقى القسمة

لو قسمنا 1600 على 300 فبيكون ( ناتج القسمة ) هو 5 من غير كسور
لييه 5 ومش 6 او 4 ؟ لان
4 * 300 = 1200 وهو رقم بعيد عن 1600
5 * 300 = 1500 وهو اقرب رقم ل 1600
6 * 300 = 1800 وهو رقم اكبر من 1600 ومينفعش

اما( باقى القسمة ) بيكون عبارة عن
1600 - 1500 = 100

---------------------------------------------------------------------
استخدمت رقم (2) علشان انه اصغر رقم زوجى ويقبل القسمة على جميع الارقام
وكى يبين الارقام الزوجية من الفردية

اتمنى ان اكون حصلتلك المعلومة

تم التعديل بواسطة amirsheta, 16 November 2010 - 02:30 AM.

أسأل الله العظيم ربّ العرش العظيم ان يرزفني العمل الصالح والمناسب لقدراتي بمايرضي الله
إنه الحليم الكريم لا إله إلا هو وهو على كل شيء قدير
وبالإجابة جدير ليس كمثله شيء وهو السميع البصير .



Amir Sheta

Oracle Developer

Oracle ADF Developer


#5 mohamed.ali

mohamed.ali

    مشترك

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

تاريخ المشاركة 16 November 2010 - 09:15 PM

شكرا يا أمير على تعبك معايا ،،
توضيحك ممتاز ...مفيش بعد كده B)

وجزاك الله خيرا،،،