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

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

صورة
- - - - -

كيفيه عمل Case Statment


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

#1 ام طيبه

ام طيبه

    مشترك

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

تاريخ المشاركة 03 February 2010 - 12:11 AM

اخواني في الله جمله بسيطه تعودت عليها في باقي لغات البرمجه مثلcase statmentاعجز عنها في لغه اوراكل افتح الهيلب يكلي
switch variable
case (a):
case(:(:
end;اجربها لا تعمل عندي
فتحت كتاب اس كيو ال يكلي
case variable
when (1) then statment;
when (2) then statment;
end case
ولا تعمل عندي علما اني استعمل ديفلوبر 6 ما الحل والجمله الصجيحه
والا كرهت الاوراكل واعتبرته عاجز على الرغم من شهرته العالميه

#2 @nana@

@nana@

    عضو نشط

  • الأعضــاء
  • 284 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Don't Say ,I Don't Know..But Try&& Error :(
    I Adore Oracle 4 Ever :D

تاريخ المشاركة 03 February 2010 - 02:28 AM

بس هتكرهى الاوراكل عشان كدااااااااااااااا ..... :(
بصى حضرتك هى لغة c++ وماشبه كان فيها switch case



وكانت ع الصيغة التالية

Switch(expr){
Case  exp_a   : statement_a
Case  exp_b   : statement_b
:					
:
Default  
}

ف الاوراكل مفيش switch دى بأأه اسمها case بس
وهيا بتعمل عمل if then else
وصيغة case expression
Case expr when expr1 then returnexpr1
when expr2 then returnexpr2
……………………….
…………………………….
Else anotherexprrr
End
كان ف مثال لذيذ ف السيكول ال كان بيشتغل ع الوظيفة وع اساسها بيزود المرتب بتاع الموظف اعتقد



select first_name,job_id,
case job_id when 'ST_CLERK' then 2*salary
when 'IT_PROG' then 2.5*salary
else salary end "new salary"
from employees

ال job_id دا ال expr ال selector يعنى ال هتشتغلى عليه


فرضا لو هتستخدميها ف كود pl
set serveroutput on declare 
x number;
begin select case job_id when 'ST_CLERK' then 2*salary
when 'IT_PROG' then 2.5*salary
else salary end into x from employees
where employee_id=&empid;
dbms_output.put_line('new salary' || x);
end;


اسفة ع التقصير

تم التعديل بواسطة @nana@, 03 February 2010 - 02:31 AM.


FatmaElgzar
https://www.facebook...acleJavaAcademy

http://www.facebook....gDream.Computer
Try 2 Change Ur Life 2 The Best
---------------------------------------
ياحى ياقيوم برحمتك أستغيث ، أصلح لى شأنى كله ولاتكلنى الى نفسى طرفة عين .

حسبى الله لااله الا هو ، عليه توكلت وهو رب العرش العظيم
--------------------------------------------------
905527214.gif


#3 ام طيبه

ام طيبه

    مشترك

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

تاريخ المشاركة 03 February 2010 - 12:40 PM

بس ممكن تشرحلي بوضوح خطوه خطوه ليش دخلت caseفي وسط جمله ال selectاني عملت
case x
when 1 then message(1);
when 2 then message (2);
end; ولم تعمل عندي يعترض على ال case

#4 ام طيبه

ام طيبه

    مشترك

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

تاريخ المشاركة 03 February 2010 - 02:16 PM

جربت الكود الي انت كاتبه وايضا كان يعترض كلماا شاف caseانا بديت اكره اوراكل اكثر فاكثر

#5 @nana@

@nana@

    عضو نشط

  • الأعضــاء
  • 284 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Don't Say ,I Don't Know..But Try&& Error :(
    I Adore Oracle 4 Ever :D

تاريخ المشاركة 05 February 2010 - 02:15 AM

بس ممكن تشرحلي بوضوح خطوه خطوه ليش دخلت caseفي وسط جمله ال selectاني عملت
case x
when 1 then message(1);
when 2 then message (2);
end; ولم تعمل عندي يعترض على ال case


انا دخلتها ف جملة سيلكت لان انا اصلا بشتغل ع الكولم من جدول employees

وبعدين ماينفعش تقولى case لوحدها كدااا
فرضا لو مش عايزاها ف جدول سيكلت
دا مثال تانى
set serveroutput on declare 
grade char(1):=upper('&grade') ;
result varchar2(10);
begin result:=case grade when 'A' then 'EXCELLENT'
when 'B' then 'VERY GOOD'
when 'C' then 'GOOD'
else 'fair'
end;
dbms_output.put_line('Result is ' || result);
end;



بس ياريت تقولى ايه الخطأ ال بيظهر ليكى


FatmaElgzar
https://www.facebook...acleJavaAcademy

http://www.facebook....gDream.Computer
Try 2 Change Ur Life 2 The Best
---------------------------------------
ياحى ياقيوم برحمتك أستغيث ، أصلح لى شأنى كله ولاتكلنى الى نفسى طرفة عين .

حسبى الله لااله الا هو ، عليه توكلت وهو رب العرش العظيم
--------------------------------------------------
905527214.gif


#6 ام طيبه

ام طيبه

    مشترك

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

تاريخ المشاركة 05 February 2010 - 03:48 PM

اختي نانا اشكرك كثير كثير على طوله بالك معاي و صبرك على فهمي البطيء
اول شي انا بجرب امثلتك على ديفلوبر 6
ثاني شيء هو الكود الي كتبتيه جربته وطلعتلي رساله الخطأ هذي
encountered the symbol 'case' when expecting one of the following(-+mod not null <an identifier><a double -quated delimiited -identifier><abind variable>avg count current exist max min prior sqlstddev sum variance cast الخ تعبت من الكتابه بس اعتقد انك عرفتي المشكله من هذا error
ممكن ولو فيه ازعاج تبعثي لي الحل الله عليك

#7 @nana@

@nana@

    عضو نشط

  • الأعضــاء
  • 284 مشاركة
  • البـلـد: Country Flag
  • الاهتمامات:Don't Say ,I Don't Know..But Try&& Error :(
    I Adore Oracle 4 Ever :D

تاريخ المشاركة 05 February 2010 - 11:19 PM

سورى بجد انا مااشتغلتش قبل كداا ع 6 بشتغل ع 10g :blink:

مش عارفة بجد بس اعتقد ال 6 مش support ال case

اتمنى حد يرد عليكى يكون اشتغل ع 6


وممكن تستخدمى decode بدلا منها

بس عشان خطرى بلاش تكرهى الاوراكل :rolleyes:


FatmaElgzar
https://www.facebook...acleJavaAcademy

http://www.facebook....gDream.Computer
Try 2 Change Ur Life 2 The Best
---------------------------------------
ياحى ياقيوم برحمتك أستغيث ، أصلح لى شأنى كله ولاتكلنى الى نفسى طرفة عين .

حسبى الله لااله الا هو ، عليه توكلت وهو رب العرش العظيم
--------------------------------------------------
905527214.gif


#8 ام طيبه

ام طيبه

    مشترك

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

تاريخ المشاركة 06 February 2010 - 10:58 AM

مشكوره حبيبتي نانا اعتقد انه لايدعمcase لانه كلما اكتبها يعترض
بس في الهيلب بتاعه كان اكو شرح لها بس اكتب لايعمل وكان فيه switch caseالمهم خسرنا اول شي case statmentمن اختارينا الاوراكل وكمان خسرنا ال debug والله اعلم حنخسر ايه الايام الجايه