توابع مقایسه ای در پایگاه داده اوراکل

تیم تحریریه 1403/07/14 0 81
لینک کوتاه https://zoheirsoftware.com/z/7ffa0b4 |
توابع مقایسه ای در پایگاه داده اوراکل,اپراتورهای مقایسه‌ای استاندارد در اوراکل,انواع توابع مقایسه ای در پایگاه داده اوراکل

مقدمه‌ای بر توابع مقایسه‌ای در پایگاه داده اوراکل

در پایگاه داده اوراکل، توابع مقایسه‌ای (Comparison Functions) یکی از ابزارهای مهم برای پردازش و تحلیل داده‌ها هستند.

این توابع به شما امکان می‌دهند که داده‌های مختلف را با یکدیگر مقایسه کنید، از جمله مقایسه مقادیر عددی، رشته‌ای، تاریخی و مقادیر NULL.

استفاده از این توابع برای نوشتن کوئری‌های پیچیده و کارآمد بسیار مفید است و در بسیاری از موارد بهینه‌سازی عملکرد جستجو و تحلیل داده‌ها را تسهیل می‌کند.

توابع مقایسه‌ای می‌توانند در شرایطی مانند جستجو در جداول، فیلتر کردن رکوردها و حتی تصمیم‌گیری‌های منطقی در کوئری‌های SQL بسیار کاربردی باشند.

اوراکل توابع مختلفی برای مقایسه مقادیر ارائه می‌دهد که هر کدام کاربردهای خاص خود را دارند.

در این مقاله به بررسی توابع مقایسه‌ای مختلف و کاربردهای آن‌ها می‌پردازیم.

 

مقدمه‌ای بر توابع مقایسه‌ای در پایگاه داده اوراکل

 

اپراتورهای مقایسه‌ای استاندارد در اوراکل

قبل از بررسی توابع، به برخی از اپراتورهای مقایسه‌ای استاندارد در اوراکل که برای مقایسه داده‌ها در کوئری‌های SQL استفاده می‌شوند، اشاره می‌کنیم:

=: برابر بودن دو مقدار را بررسی می‌کند.
!= یا <>: نابرابر بودن دو مقدار را بررسی می‌کند.
<: بررسی می‌کند که آیا مقدار اول کمتر از مقدار دوم است.
>: بررسی می‌کند که آیا مقدار اول بزرگتر از مقدار دوم است.
<=: بررسی می‌کند که آیا مقدار اول کمتر یا مساوی مقدار دوم است.
>=: بررسی می‌کند که آیا مقدار اول بزرگتر یا مساوی مقدار دوم است.
این اپراتورها در تمامی زبان‌های SQL برای مقایسه داده‌ها به‌کار می‌روند و پایه مقایسات در SQL هستند.

 

اپراتورهای مقایسه‌ای استاندارد در اوراکل

انواع توابع مقایسه ای در پایگاه داده اوراکل

  •  تابع GREATEST

    تابع GREATEST از بین چندین مقدار ورودی، بزرگترین مقدار را برمی‌گرداند. این تابع می‌تواند بر روی انواع مختلف داده‌ها از جمله عددی، رشته‌ای و تاریخی عمل کند.

ساختار:

GREATEST(expr1, expr2, ...)


expr1, expr2, ...: مقادیری که باید مقایسه شوند.


مثال:

SELECT GREATEST(10, 20, 30) AS greatest_value FROM dual;



خروجی:

GREATEST_VALUE
--------------
30



در این مثال، بزرگترین عدد از میان ۱۰، ۲۰ و ۳۰ برابر با ۳۰ است.

  • تابع LEAST

    تابع LEAST کوچکترین مقدار از میان مقادیر ورودی را برمی‌گرداند.
    این تابع نیز می‌تواند بر روی انواع داده‌های مختلف عمل کند.

ساختار:

LEAST(expr1, expr2, ...)


مثال:

SELECT LEAST('Apple', 'Orange', 'Banana') AS least_value FROM dual;


خروجی:

LEAST_VALUE
-----------
Apple


در این مثال، تابع LEAST رشته‌ای که از لحاظ ترتیبی کوچک‌تر است (یعنی "Apple") را برمی‌گرداند.

  •  تابع DECODE

    تابع DECODE در اوراکل یکی از توابع مقایسه‌ای و شرطی پرکاربرد است که عملکردی شبیه به عبارت CASE در SQL دارد. این تابع به شما اجازه می‌دهد که مقادیر را با یکدیگر مقایسه کنید و بر اساس تطابق مقادیر خروجی متفاوتی برگردانید.

ساختار:

DECODE(expr, search1, result1, search2, result2, ..., default)

expr: مقدار یا عبارت ورودی که باید مقایسه شود.
search: مقادیر مورد جستجو.
result: نتیجه‌ای که در صورت تطابق با مقدار مورد جستجو برگردانده می‌شود.
default: نتیجه‌ای که در صورت عدم تطابق با هیچ‌یک از مقادیر جستجو برگردانده می‌شود (اختیاری است).


مثال:

SELECT DECODE(grade, 'A', 'Excellent', 'B', 'Good', 'C', 'Average', 'Fail') AS performance FROM students;


در این مثال، تابع DECODE برای بررسی مقدار grade به‌کار رفته است و بر اساس مقادیر مختلف، نتایج متفاوتی برگردانده می‌شود.

برای مثال اگر grade برابر با 'A' باشد، نتیجه Excellent خواهد بود.

  •  تابع CASE

    تابع CASE در اوراکل شبیه به DECODE است اما انعطاف بیشتری دارد.
    این تابع به شما اجازه می‌دهد که چندین شرط مختلف را تعریف کرده و بر اساس تطابق شرط‌ها خروجی متفاوتی داشته باشید.

ساختار:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE default_result
END


مثال:

SELECT 
    CASE 
        WHEN salary > 5000 THEN 'High'
        WHEN salary BETWEEN 3000 AND 5000 THEN 'Medium'
        ELSE 'Low'
    END AS salary_level
FROM employees;


در این مثال، بسته به مقدار salary، سطوح مختلف حقوق (High، Medium، Low) تعیین می‌شود.

  • تابع NULLIF

    تابع NULLIF برای مقایسه دو مقدار استفاده می‌شود و اگر دو مقدار با یکدیگر برابر باشند، مقدار NULL را برمی‌گرداند.
    در غیر این صورت، مقدار اول را بازمی‌گرداند. این تابع برای مدیریت مقادیر تکراری بسیار مفید است.

ساختار:

NULLIF(expr1, expr2)


مثال:

SELECT NULLIF(10, 10) AS result FROM dual;

خروجی:

 

RESULT
------
NULL


در این مثال، چون هر دو مقدار برابر هستند، نتیجه NULL خواهد بود. اگر مقادیر متفاوت بودند، مقدار اول برگردانده می‌شد.

  • تابع COALESCE

    تابع COALESCE برای مدیریت مقادیر NULL به‌کار می‌رود و اولین مقدار غیر NULL از لیست ورودی‌ها را برمی‌گرداند.
    این تابع بسیار کاربردی است برای زمانی که ممکن است مقادیری دارای NULL باشند و شما می‌خواهید اولین مقدار معتبر را انتخاب کنید.

ساختار:

COALESCE(expr1, expr2, ..., exprN)



مثال:

SELECT COALESCE(NULL, NULL, 'Value3', 'Value4') AS result FROM dual;



خروجی:

 

RESULT
------
Value3


در این مثال، تابع COALESCE اولین مقدار غیر NULL یعنی 'Value3' را برمی‌گرداند.

  • تابع NVL

    تابع NVL یکی دیگر از توابع مدیریت مقادیر NULL است که اگر مقدار اول NULL باشد، مقدار دوم را برمی‌گرداند.
    این تابع به‌طور خاص برای جایگزینی مقادیر NULL با مقادیر پیش‌فرض مفید است.

ساختار:

NVL(expr1, expr2)


مثال:

SELECT NVL(NULL, 'Default Value') AS result FROM dual;



خروجی:

 

RESULT
------
Default Value


در این مثال، چون مقدار اول NULL است، تابع NVL مقدار دوم یعنی 'Default Value' را برمی‌گرداند.

  • تابع NVL2

    تابع NVL2 یک نسخه پیشرفته‌تر از NVL است.
    این تابع سه آرگومان می‌گیرد و اگر مقدار اول NULL نباشد، مقدار دوم را برمی‌گرداند و اگر NULL باشد، مقدار سوم را برمی‌گرداند.

ساختار:

NVL2(expr1, expr2, expr3)



مثال:

SELECT NVL2(NULL, 'Not Null', 'Is Null') AS result FROM dual;

خروجی:

RESULT
------
Is Null


در این مثال، چون مقدار اول NULL است، مقدار سوم ('Is Null') برگردانده می‌شود.

  • تابع LNNVL

    تابع LNNVL یک تابع منطقی است که برای مقایسه مقادیر NULL در شرایط پیچیده به‌کار می‌رود.
    این تابع برای ارزیابی عبارات منطقی در شرایطی استفاده می‌شود که مقادیر NULL وجود دارند.

ساختار:

LNNVL(condition)



این تابع زمانی که شرط TRUE یا FALSE باشد، نتیجه متناسب را برمی‌گرداند اما اگر شرط شامل مقادیر NULL باشد، نتیجه متفاوتی برمی‌گرداند.

مثال:

SELECT LNNVL(salary > 3000) AS result FROM employees WHERE employee_id = 101;



این تابع برای بررسی شرایطی که ممکن است شامل NULL باشند مفید است و باعث جلوگیری از نتایج نادرست در شرایط مقایسه‌ای می‌شود.

  • تابع SIGN

    تابع SIGN برای تعیین علامت یک عدد استفاده می‌شود.
    این تابع در تحلیل‌های عددی و برای تعیین مثبت، منفی یا صفر بودن یک مقدار کاربرد دارد.

ساختار:

SIGN(number)


مثال:

SELECT SIGN(-10) AS sign_value FROM dual;



خروجی:

SIGN_VALUE
----------
-1



در این مثال، مقدار -1 نشان‌دهنده منفی بودن عدد ورودی است.

  •  تابع INSTR

    تابع INSTR برای یافتن موقعیت یک زیررشته در یک رشته اصلی استفاده می‌شود. این تابع مقایسه‌ای برای جستجوی متن در پایگاه داده‌ها بسیار کاربرد دارد.

ساختار:

INSTR(string, substring, [start_position], [nth_appearance])



مثال:

SELECT INSTR('Oracle Database', 'Data') AS position FROM dual;



خروجی:

POSITION
--------
8



در این مثال، تابع INSTR موقعیت اولین حضور کلمه 'Data' در رشته 'Oracle Database' را بازمی‌گرداند.

 

انواع توابع مقایسه ای در پایگاه داده اوراکل

دوره های مرتبط
پکیج آموزش اوراکل,دوره آموزش پروژه محور پایگاه داده اوراکل,آموزش پایگاه داده اوراکل Oracle ,پایگاه داده اوراکل

اموزش پایگاه داده اوراکل Oracle

در دوره آموزش پایگاه داده اوراکل اصول ، مفاهیم ، طراحی ، پیاده‌سازی و مدیریت پایگاه داده را به صورت جامع آموزش می دهیم .

700,000 تومان

2.3k بازدید
مشاهده

ارسال دیدگاه

برای ارسال نظر لطفا ورود یا ثبت نام کنید.