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

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

صورة
- - - - -

هل يمكن لتعليمة (SELECT) توليد صفوف ليست موجودة؟


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

#1 تعيس الحظ

تعيس الحظ

    عضو

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

تاريخ المشاركة 02 September 2005 - 01:17 PM

مساء الخير...

كما هو معلوم يمكن توليد أعمدة غير موجودة بواسطة تعليمة SELECT، فمثلاًً لنفترض أني أملك جدولاً بالإسم (PERSONS)، يحتوي على الأعمدة: المعرف (PersonId)، الإسم (PersonName)، الدخل الشهري (EarnAMonth)، ويحتوي على الصفوف التالية:
1 تعيس الحظ 100
2 سعيد الحظ 10000
4 فاقد الحظ 10
8 معاند الحظ 150
فإنه يمكننا إستخدام تعليمة SELECT، لتولد عمود جديد يدعى EarnAYear (الدخل السنوي).
SELECT PersonId, PersonName, EarnAMonth, EarnAMonth * 12 "EarnAYear";

السؤال أو المشكلة:
أنني أريد كتابة تعليمة SELECT، يكون ناتجها الصفوف التالية.
3
5
6
7
أي أرقام المعرفات الغير موجودة في الجدول، والطريقة التي أريد حل بها هذه المشكلة، هي كتابة تعليمة SELECT أولاً لتوليد الصفوف التالي:
1
2
3
4
5
6
7
8
وذلك -مثلاً- باستخدام جدول يتكون من صف واحد، كالجدول DUAL. ثم إجراء عملية طرح بين الجدول المكون والجدول الأساسي (طبعا لن يكون الجدول الأساسي كاملاً ولكن باختيار العمود الأول منه فقط).

هل يمكن ذلك؟؟؟؟

ولكم الشكر....

#2 ابو صالح

ابو صالح

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,253 مشاركة
  • البـلـد: Country Flag
  • المنصب الحالي:(رحمه الله)

تاريخ المشاركة 03 September 2005 - 04:10 AM

بصراحة مافهمت ،، ممكن توضع شوي.

<span style='font-size:11pt;line-height:100%'>
زكاة العلم نشرة

Oracle Certifed Expert, OCE RAC
Oracle Certified Professional OCP 9i,10g
ITIL v3

</span>


#3 تعيس الحظ

تعيس الحظ

    عضو

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

تاريخ المشاركة 03 September 2005 - 03:08 PM

بإختصار شديد، هل يمكن كتابة تعليمة SELECT، يكون ناتجها عبارة صفوف أرقام (مثلاً من 1 إلى 10)؟
هل يمكن إستخدام الجدول DUAL، لإرجاع صفوف (وليس أعمدة)، من الرقم 1 إلى الرقم 10؟

#4 أسامة موسى

أسامة موسى

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 2,381 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 03 September 2005 - 04:32 PM

الاخ الكريم
ممكن عمل جدول يحتوي على الارقام من 1 الى 10 مثلا ويحتوي على الوصف
ثم تعمل جملة select من الجدولين


create table other_table (serno number(4));


SELECT PersonId, PersonName, EarnAMonth, EarnAMonth * 12 "EarnAYear" from personal union
SELECT serno PersonId, '2' PersonName, '3' EarnAMonth,
'4' EarnAMonth * 12 "EarnAYear" from Other_Table


هعذا اقتراح طبعا
۩ اللهـــــــــــــــــــــــم صلي على سيدنا محمد وعلـى آله وصحبه أجمـعين ۩
۩ سبحـــــــــــــــــان الله وبحمده ....... سبحــــــــــــــــــــــــان الله العظيم ۩



يمكنك زيارتي على صفحتي الخاصة بالفيس بوك على الرابط AskOsama

يمكنك زيارتي على مدونتي الجديدة على الرابط http://askossama.blogspot.com

#5 ابو عبد المجيد

ابو عبد المجيد

    عضو

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

تاريخ المشاركة 09 September 2005 - 07:25 PM

"ان للمتقين مفازا"

السلام عليكم
من الممكن توليد صفوف بجملة select ولكن تحتاج إلى جملة طويلة
ففى حالتك مثلا من الممكن ان تولد صفوف مستخدما union مثل

SELECT 1 A FROM DUAL
UNION
SELECT 2 A FROM DUAL
UNION
SELECT 3 A FROM DUAL
UNION
SELECT 4 A FROM DUAL
UNION
SELECT 5 A FROM DUAL
.
.
.
وهكذا
مع العلم طبعا ان A هو مجرد ALIAS لاسم الحقل

اخى العزيز لو اردت مشاركتى اكثر ارسل لى شرح للمشكلة التى تواجهها
فمن الممكن ان يكون هناك حل اخر بدلا من عمل جملة SELECT طويلة بهذا الشكل

#6 sheref_fahmy

sheref_fahmy

    عضو

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

تاريخ المشاركة 10 September 2005 - 03:38 PM

الأخ الكريم :

جرب إستخدام هذا الأمر :


SELECT ٌROWNUM , PersonId, PersonName, EarnAMonth, EarnAMonth * 12 "EarnAYear";





العمود الوهمى ROWNUM يمكن إضافته إلى أى كود لإضافة الترقيم للنتيجه المطلوبه.

أرجو أن يكون هذا ما كنت تبحث عنه.


sherif Hamed Fahmy
Oracle Training Supervisor
Unlimited Technology Training Center
Knowledge Village - Dubai
sheref_fahmy@yahoo.com