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

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

صورة
- - - - -

اريد شرح وتعريف عن decode


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

#1 modiOne

modiOne

    عضو

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

تاريخ المشاركة 24 May 2005 - 01:09 PM

اخواني اعضاء منتدى اوركل
اريد شرح وتعريف عن decode ماذا يعني وما عمله
عندي شرح بكره ولغتي الانجليزيه ضعيفه
واتمناء من اخواني الاعزاء انهم يساعدوني
اخوكم modiOne
وشاكر لكم جهودكم اي واحد عنده معلومه ولو بسيطه لا يبخل علي فيها

#2 selman0

selman0

    عضو نشط

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

تاريخ المشاركة 24 May 2005 - 01:47 PM

الاجراء deocdeعمله مثل عمل الاجراءcase
وتستخدم فى جمل الsql لاسترجاع قيم محددة اوعلى حسب قيم العمود فلنفرض مثلا
انة لديناالجدول التالى
create table a (x int, b int);
ادخل بة القيم التالية
insert into a values (1,2);
insert into a values (1,3);
insert into a values (2,4);
insert into a values (2,5);
insert into a values (3,6);

والان
select * from a where b=decode (x,1,2,2,4):D
ماذا تعنى هذ الجملة
تعنى التالى
اذا كانت قيمة x
1
ارجع القيمة 2
واذا كانت قيمة x
2
ارحع القيمة 4
اليك هذة القاعدة البسيطة

SELECT DECODE (value,<if this value>,<return this value>,
<if this value>,<return this value>,
....)
FROM dual;
وحاضر لاى سؤال
selman0
http://askelwos.blogspot.com/[color=#3366FF]

#3 searcher

searcher

    عضو نشط

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

تاريخ المشاركة 24 May 2005 - 01:58 PM

اخى العزيز
Decode
هى عبارة عن دالة تعمل عمل مشابه لمعنى if then else
اى انها تعيبر الى حد ما اداه شرطية

فهذا مثال ستفهم منه ان شاء الله تعالى عملها
نفترض ان ليدك عدة موظفين فى عدة اقسام مختلفة و تريد ان تسترجع رواتب هؤلاء الموظفين و لكن بنسبة زيادة لكل موظف حسب قسمه يعنى
قسم:-
- رؤساء الاقسام(Dept_head) يكون راتبهم = الراتب الاساسى + 25 %
-الموظفين(Employees) يكون راتبهم = الراتب الاساسى + 15 %
-العمال(Worker) يكون راتبهم = الراتب الاساسى + 10%
-اى شخص اخر غير هؤلاء(Other) يكون راتبهم = الراتب الاساسى فقط
[/sql]select name,job_id,salary
'Decode(job_id,'Dept_head,0.25 * salary,
'Employees',0.15 * salary,
'Worker',0.10 * salary,
salary
from emp;
مع افتراض ان اسم الجدول هو امب
هنا ان كان الموظف الذى تم اختيارم يتبع قسم HDept_head سوف يكون مرتبة =
= الراتب الاساسى + 25 %
و هكذا لباقى الموظفين و ان كان الموظف لا يتبع اى قسم من هذه الاقسام سيكون مرتبه فقط الاساسى
ارجوا ان اكون افدتك
سبحان الله و بحمده سبحان الله العظيم
يا رب لك الحمد كما ينبغى لجلال و جهك و عظيم سلطانك
اللهم صلى و سلم و بارك على سيد الاولين و الاخرين محمد بن عبدالله و على اله و صحبه و سلم تسليما كثيرا

#4 modiOne

modiOne

    عضو

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

تاريخ المشاركة 24 May 2005 - 03:57 PM

يعطيكم الف عافيه
ويجلعه الله في ميزان حسناتكم
والله يزودكم بطاعة ويزودكم بالعلم النافع
وشكراً لكرمكم
يقال ليس البخيل بخيل المال بلى البخيل بخيل الجاه والعلم
واشهد انكم اكرمتوني وشكر خاص على القامين على هذا المنتدى الرائع
selman0
searcher
الف الف شكر



#5 mah_dahshan

mah_dahshan

    عضو نشط

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

تاريخ المشاركة 28 May 2005 - 10:40 AM

THANKS

MAH_DAHSHAN@YAHOO.COM
OCP

وفوق كل ذى علم عليم