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

أريد تابع لهذا الأمر


zakkar

Recommended Posts

نعم توجد هناك دالة جاهزة اسمها abs

abs(n) 

SELECT ABS(-15) "Absolute" FROM DUAL;
Absolute
----------
15



وطريقة اخرى :
ممكن تعمل دالة تستقبل متغير مثلا A
وتعمل شرط ، اذا كانت A اقل من صفر يقوم بجعل A = A * -1

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

ممكن تعمل Database trigger يقوم بتأكد من القيمة قبل ادخالها

create or replace trigger chk_sal
before insert on emp
for each row
begin
if :new.sal < 0 then
:new.sal  := null;
end if;
end ;

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

يمكن أن تستخدم التابع
case ... when ... then ... else ... end
راجع كتاب
Oracle9i SQL Reference
ملاحظة هذا التابع موجود فقط في الاصدار 9 من أوراكل
وهذا المثال يحل المشكلة

SQL> create table test(dummy number);

SQL> insert into test values (15);


SQL> insert into test values (-10);


SQL> commit;


SQL> select * from test;

DUMMY
----------
15
-10

select case when dummy>=0 then dummy
else null end
from test

CASEWHENDUMMY>=0THENDUMMYELSENULLEND
------------------------------------
15

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

  • بعد 1 شهر...
  • بعد 3 أسابيع...
  • بعد 3 سنة...

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

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

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

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

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

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

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