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

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

صورة
- - - - -

كيف استخرج اكبر رقم بدون استخدام دالة max


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

#1 المجازف

المجازف

    عضو

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

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

الله لايمسيكم الا بالخير

اخواني الاوراكليون

انا قدر الله علي وغبت محاضر وحيده وكانت هالمحاضره مفتاح كل حاجه

طبعا الدكتور عطانا واجب يقول انشئ جدول فيه عمود واحد فقط اسمه id

ادخل 50 رقم وطلع لي اكبر رقم بدون استخدام دالة max

يجب استخدام while loop

طبعا الكود تكتبون كذا

declare

begin

end


وخالص شكري وتقديري وامتناني لكم مقدماً

اخوكم المجازف

#2 TROYMAN

TROYMAN

    مشترك

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

تاريخ المشاركة 18 April 2009 - 10:38 PM

السلام عليكم...
هذه بعض الحلول,أعتقد أن الحل الثالث يفي بالغرض....بالتوفيق

declare
Pmax number:=0;
Pmin number:=0;
cursor cur is select ID from test; begin for rec in cur loop
if rec.ID>Pmax then Pmax:=rec.ID;end if;
if rec.ID <Pmin then Pmin:=rec.ID;end if;
end loop;
dbms_output.put_line(Pmax);
dbms_output.put_line(Pmin);
end;
/


declare
Pmax number:=0;
cursor cur is select ID from test order by ID desc;
begin open cur;
fetch cur into Pmax; close cur;
dbms_output.put_line(Pmax);
end;
/


declare
Pmax number:=0;
Pcurrent number:=0;
cursor cur is select ID from test; begin open cur;
fetch cur into Pcurrent; while cur%found loop
if Pcurrent>Pmax then Pmax:=Pcurrent;end if;
fetch cur into Pcurrent; end loop;
close cur;
dbms_output.put_line(Pmax);
end;
/


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



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


#3 المجازف

المجازف

    عضو

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

تاريخ المشاركة 19 April 2009 - 12:04 AM

;)


بيض الله وجهك

فكيت عني ازمة

الله يفرج عنك كروب الدنيا

#4 TROYMAN

TROYMAN

    مشترك

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

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

السلام عليكم...
لقد لا حظت أن هناك خطأ في الحل الأول لأن عملية المقارنة لأول مرة يجب أن تتم مع أحد نتائج الكيرسر و ليس مع الصفر لذلك يصبح الحل:
declare
Pmax number:=0;
Pmin number:=0;
f boolean:=false;
cursor cur is select ID from test; begin for rec in cur loop
if not f then Pmax:=rec.ID;Pmin:=rec.ID;f:=true; end if;
if rec.ID>Pmax then Pmax:=rec.ID;end if;
if rec.ID<Pmin then Pmin:=rec.ID;end if;
end loop;
dbms_output.put_line(Pmax);
dbms_output.put_line(Pmin);
end;
/


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



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