توابع ارزیابی در SQL Server

تیم تحریریه 1403/10/24 0 26
لینک کوتاه https://zoheirsoftware.com/z/d6f2d83d7 |
توابع ارزیابی در SQL Server,انواع توابع ارزیابی در پایگاه  داده  SQL,کاربردهای ISNUMERIC  در SQL

توابع ارزیابی در پایگاه  داده SQL

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

این توابع می‌توانند انواع مختلفی از وظایف مانند ارزیابی مقادیر، تغییر داده‌ها، یا اعتبارسنجی اطلاعات را انجام دهند.

در ادامه، توضیحاتی جامع درباره توابع CASE، CURRENT_USER، ISDATE، ISNULL و ISNUMERIC ارائه می‌شود.

 

توابع ارزیابی در پایگاه داده SQL

انواع توابع ارزیابی در پایگاه  داده  SQL

  • تابع CASE

    تابع CASE یکی از قدرتمندترین توابع SQL است که امکان پیاده‌سازی منطق شرطی را در کوئری‌های SQL فراهم می‌کند.
    این تابع شبیه به دستورهای شرطی مانند IF...ELSE در زبان‌های برنامه‌نویسی است.

ساختار کلی:

CASE 
    WHEN شرط_1 THEN نتیجه_1
    WHEN شرط_2 THEN نتیجه_2
    ...
    ELSE نتیجه_پیش‌فرض
END


مثال:

SELECT ProductName, 
       CASE 
           WHEN Price > 100 THEN 'گران'
           WHEN Price BETWEEN 50 AND 100 THEN 'متوسط'
           ELSE 'ارزان'
       END AS PriceCategory
FROM Products;


توضیح:

اگر قیمت بیشتر از 100 باشد، مقدار گران بازگردانده می‌شود.
اگر بین 50 تا 100 باشد، مقدار متوسط بازگردانده می‌شود.
در غیر این صورت، مقدار ارزان بازگردانده می‌شود.


نکات مهم:

می‌توان از چندین شرط استفاده کرد.
مقدار پیش‌فرض (بخش ELSE) اختیاری است.
این تابع در انتخاب و فیلتر کردن داده‌ها بسیار مفید است.

  • تابع CURRENT_USER

    تابع CURRENT_USER اطلاعات کاربری که در حال حاضر به پایگاه داده متصل است را بازمی‌گرداند.
    این تابع برای شناسایی کاربران، پیاده‌سازی سیاست‌های امنیتی، و ذخیره‌سازی اطلاعات کاربر مفید است.

مثال:

SELECT CURRENT_USER AS LoggedInUser;

توضیح:


این کوئری نام کاربری را که به پایگاه داده متصل است، برمی‌گرداند.

نکات:

CURRENT_USER همیشه نام کاربر جاری را برمی‌گرداند.
می‌تواند در سناریوهایی مانند Audit Logging برای ثبت فعالیت کاربران استفاده شود.
این تابع معمولاً در سیستم‌هایی با چندین سطح دسترسی به پایگاه داده اهمیت دارد.

  • تابع ISDATE

    تابع ISDATE بررسی می‌کند که آیا یک مقدار مشخص، یک تاریخ معتبر است یا خیر.
    این تابع معمولاً برای اعتبارسنجی مقادیر تاریخ استفاده می‌شود.

ساختار:

ISDATE(expression)

مثال:

SELECT ISDATE('2025-01-01') AS IsValidDate; -- نتیجه: 1 (True)
SELECT ISDATE('NotADate') AS IsValidDate;   -- نتیجه: 0 (False)


خروجی:


مقدار 1 (True): اگر مقدار یک تاریخ معتبر باشد.
مقدار 0 (False): اگر مقدار یک تاریخ معتبر نباشد.
این تابع مقادیر فرمت‌های تاریخ مختلف (مانند YYYY-MM-DD) را بررسی می‌کند.
معمولاً در ورودی‌هایی که کاربران به صورت دستی وارد می‌کنند یا در بررسی داده‌های غیرقابل اعتماد استفاده می‌شود.

  • تابع ISNULL

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

ساختار:

ISNULL(expression, replacement_value)
مثال:
sql
Copy code
SELECT ProductName, ISNULL(Discount, 0) AS FinalDiscount
FROM Products;


توضیح:

اگر مقدار ستون Discount برابر با NULL باشد، مقدار جایگزین (در اینجا 0) بازگردانده می‌شود.

نکات:

کاربرد رایج: جلوگیری از بروز خطا در عملیات محاسباتی یا جمع‌بندی مقادیر.

مثال:

SELECT Price * ISNULL(Discount, 1) FROM Products;

عملکرد مشابهی با تابع COALESCE دارد، اما محدود به دو مقدار است.

 

 

🌟 آیا می‌خواهید به یک متخصص پایگاه داده تبدیل شوید و در دنیای فناوری اطلاعات بدرخشید؟

با دوره آموزشی SQL Server ما، شما می‌توانید به راحتی و با روشی عملی، تمام مهارت‌های لازم را یاد بگیرید!

این دوره به شما آموزش می‌دهد که چگونه داده‌ها را به بهترین شکل مدیریت کنید، گزارش‌های قدرتمند بسازید و به تحلیل‌های عمیق دست یابید.

با محتوای جذاب و پروژه‌های واقعی، شما نه تنها تئوری را یاد می‌گیرید، بلکه توانایی‌های عملی خود را نیز تقویت می‌کنید.

پس فرصت را از دست ندهید! همین امروز به جمع یادگیرندگان ما بپیوندید و اولین قدم را به سوی آینده شغلی روشن‌تر بردارید!

 همین حالا شروع کنید و به دنیای داده‌ها بپیوندید!

 

 

  • تابع ISNUMERIC

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

ساختار:

ISNUMERIC(expression)

مثال:

SELECT ISNUMERIC('12345') AS IsNumber;   -- نتیجه: 1 (True)
SELECT ISNUMERIC('12.34') AS IsNumber;   -- نتیجه: 1 (True)
SELECT ISNUMERIC('ABC123') AS IsNumber;  -- نتیجه: 0 (False)
SELECT ISNUMERIC('$100') AS IsNumber;    -- نتیجه: 1 (True)


توضیح:

این تابع مقادیری مانند اعداد صحیح (123)، اعشاری (12.34)، و نمادهای عددی مانند 100$ را به عنوان عدد معتبر می‌شناسد.

مقدار بازگشتی:

1 (True): اگر مقدار عددی باشد.
0 (False): اگر مقدار عددی نباشد.

 

انواع توابع ارزیابی در پایگاه داده SQL


کاربردهای ISNUMERIC  در SQL

  • اعتبارسنجی داده‌ها

    برای بررسی اینکه آیا یک مقدار خاص (مانند ورودی کاربر) عددی است یا خیر.
SELECT 
    CASE 
        WHEN ISNUMERIC(UserInput) = 1 THEN 'Valid Number'
        ELSE 'Invalid Input'
    END AS ValidationResult
FROM Inputs;
  • تبدیل داده‌ها

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

 

SELECT 
    CASE 
        WHEN ISNUMERIC(Value) = 1 THEN CAST(Value AS INT)
        ELSE NULL
    END AS ConvertedValue
FROM Data;
  • فیلتر کردن داده‌ها

    می‌توان داده‌های غیر عددی را از جداول حذف کرد:

 

SELECT * 
FROM Data 
WHERE ISNUMERIC(ColumnName) = 1;

 

کاربردهای ISNUMERIC در SQL


نکات مهم درباره ISNUMERIC

  • شناسایی نمادهای خاص

    تابع ISNUMERIC مقادیر خاصی مانند $، + و - را به عنوان عدد معتبر در نظر می‌گیرد، زیرا این نمادها در برخی فرهنگ‌ها یا فرمت‌ها قابل قبول هستند.

 

SELECT ISNUMERIC('$100'); -- نتیجه: 1
SELECT ISNUMERIC('-50');  -- نتیجه: 1

 

  • پشتیبانی از انواع مختلف داده‌ها

    این تابع می‌تواند مقادیر عددی از نوع‌های مختلف (مانند عدد صحیح، اعشاری، و غیره) را شناسایی کند.
  • محدودیت‌ها

    تابع ISNUMERIC ممکن است در برخی موارد نتایج غیرمنتظره‌ای تولید کند. به عنوان مثال:
SELECT ISNUMERIC('123D'); -- نتیجه: 0
SELECT ISNUMERIC('123E4'); -- نتیجه: 1

 

 

دوره های مرتبط
آموزش Sql,آموزش sqlserver, آموزش جامع Sqlserver

آموزش پایگاه داده SqlServer

پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .

997,000 تومان

2.3k بازدید

ارسال دیدگاه

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