السلام عليكم
لدى جدول به عمودين {Eff_from-Eff_to}و اريد عمل استعلام بحيث أن اراعى عدم وجود Null value
, قمت باستخدام NVL(eff_to,0 ) و لكن لم يقبله فهل هناك حل لتفادى تلك المشكلة
جزاكم الله خيرا
السلام عليكم
لدى جدول به عمودين {Eff_from-Eff_to}و اريد عمل استعلام بحيث أن اراعى عدم وجود Null value
, قمت باستخدام NVL(eff_to,0 ) و لكن لم يقبله فهل هناك حل لتفادى تلك المشكلة
جزاكم الله خيرا
****من قال فى اليوم سبحان الله و بحمده مائه مرة غفرت ذنوبه و أن كانت كزبد البحر****
Das Alter des Schlafens ist gegangen
من لاح له فجر الاجر ... هان عليه ظلام التكليف
هل تستخدم sql ؟ سهل انك تنفذ الامر اذا كنت بتستخدم sql ... اذا كان اكتب لك الكود هنا ..
ما كانش .. يبقى اعذرني لان خبرتي في الاوراكل زي خبرتي برعاية الرضع B)
اعذرني ما اخدتش بالي من العنوان ..
SELECT count(*) from x WHERE x IS NULL;
ضع امر الـ sql في حالة شرط بس بالنفي ... يعني لو الشرط ما تحققش .. نفذ كذا ... يعني لو في ناتج للاستعلام نفذ شرط معين وهو رسالة الخطأ مثلا ولولم يوجد اكمل العملية - حسب اللغة اللي بتستخدمها للتعامل مع اوراكل .
تم تعديل هذه المشاركة بواسطة محمد رمضان في 13 أغسطس 2006 في 01:39
أيضا جرب استخدام الأمر:
SELECT * from table WHERE x not in (NULL);
او يمكنك تحديد عدة قيم تستثني منها اختيارك :
SELECT * from table WHERE x not in (1,2,34,NULL);
لاستثناء من مجموعة قيم ...
اتمنى اكون افدت .. :unsure:
إذا كنت لا تريد قيم Null :
select * from table_name where eff_to is not null;
أو بإستخدام NVL :
select * from table_name where nvl(eff_to,-1) <>-1;
نسيت ان اذكر ان العمودين تواريخ DATES
و هذه هى المشكلة
****من قال فى اليوم سبحان الله و بحمده مائه مرة غفرت ذنوبه و أن كانت كزبد البحر****
Das Alter des Schlafens ist gegangen
من لاح له فجر الاجر ... هان عليه ظلام التكليف
يمكنك استخدام IS NOT NULL حتى مع التواريخ ...
هنا شرح كامل للـ Oracle NULLs :
http://www.psoug.org/reference/null.html
اذا كنتي تقصدي ان التاريخ Not null تاكدي الاول ان القيمة الافتراضية لعمود الوقت هي null وليست صفر ...
القيمة الإفتراضية لجميع أنواع البيانات في أوراكل إذا لم تقم بتحديدها فهي NULL ..
السلام عليكم
و لكنى اريد استخدام NVL
select auth_c from lu_auth where eff_from >=sysdate and NVL(Eff_to,0)<=sysdate
i wish you could get me
تم تعديل هذه المشاركة بواسطة Miss_Dev في 13 أغسطس 2006 في 23:45
****من قال فى اليوم سبحان الله و بحمده مائه مرة غفرت ذنوبه و أن كانت كزبد البحر****
Das Alter des Schlafens ist gegangen
من لاح له فجر الاجر ... هان عليه ظلام التكليف
SELECT auth_c, NVL(Eff_from, Eff_to) FROM lu_auth;
SELECT auth_c, NVL(enddate, SYSDATE) FROM lu_auth;
SELECT auth_c, NVL(enddate , startdate) FROM lu_auth;
تم تعديل هذه المشاركة بواسطة محمد رمضان في 14 أغسطس 2006 في 00:33
the oracle developer is giving me error in the datatype
says there is mismatch between date and number datatypes
and i want to avoid having the date field with null value
****من قال فى اليوم سبحان الله و بحمده مائه مرة غفرت ذنوبه و أن كانت كزبد البحر****
Das Alter des Schlafens ist gegangen
من لاح له فجر الاجر ... هان عليه ظلام التكليف
هل ممكن أن أعلم لماذا أنت مصرة على استخدام NVL ؟؟؟
الإستعلم الذي كتبتيه يمكن إعادة كتابته بالشكل :
select auth_c from lu_auth where ( eff_from >=sysdate )
and nvl(eff_to , to_date('1-1-1900', 'dd-mm-yyyy') ) <= sysdate;طبعاً الخطأ يأتي من أنك تريدين مقارنة الصفر في حال كون eff_to فارغة Null مع التاريخ
سامحينى... لم افهم ما المشكلة بالظبط
but i want to tell u that COUNT group function already not enclude the null values look: !0
select count(COMMISSION_PCT) from employees
is diferent from
select count(*) from employees
so what u mean with using nvl... r u want to include null values in ur statement
in NVL (expr1, expr3) the two expressions must be the same datatype..
هذا الموضوع مغلق.