دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
Enumeration در سی شارپ
1403/09/01 -
پارتیشن بندی در پایگاه داده اوراکل
1403/08/30 -
Delegates در سی شارپ
1403/08/29 -
انواع ایندکس در پایگاه داده اوراکل
1403/08/28 -
سربارگذاری متدها در سی شارپ
1403/08/27
توابع مقایسه ای در پایگاه داده اوراکل
مقدمهای بر توابع مقایسهای در پایگاه داده اوراکل
در پایگاه داده اوراکل، توابع مقایسهای (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
در دوره آموزش پایگاه داده اوراکل اصول ، مفاهیم ، طراحی ، پیادهسازی و مدیریت پایگاه داده را به صورت جامع آموزش می دهیم .