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

كيفيه عمل Case Statment


ام طيبه

Recommended Posts

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

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

بس هتكرهى الاوراكل عشان كدااااااااااااااا ..... :(
بصى حضرتك هى لغة 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@
رابط هذا التعليق
شارك

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

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

بس ممكن تشرحلي بوضوح خطوه خطوه ليش دخلت 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;




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

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

اختي نانا اشكرك كثير كثير على طوله بالك معاي و صبرك على فهمي البطيء
اول شي انا بجرب امثلتك على ديفلوبر 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
ممكن ولو فيه ازعاج تبعثي لي الحل الله عليك

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

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

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

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


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

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

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

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

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

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

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

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

×   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.

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

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

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