دسته بندی مقالات
- بیشتر -محصولات
- بیشتر -آخرین مقالات
- بیشتر --
توابع ارزیابی در SQL Server
1403/10/24 -
خواص ( Properties ) در سی شارپ
1403/10/23 -
تابع های تهی در پایگاه داده SQL
1403/10/22 -
تحلیل نیازهای نرمافزار حسابداری و انبارداری
1403/10/21 -
قوانین و مقررات انبارداری در طراحی نرمافزار
1403/10/20 -
اصول و استانداردهای حسابداری و انبارداری
1403/10/19
توابع ارزیابی در SQL Server
توابع ارزیابی در پایگاه داده SQL
در پایگاه داده SQL، توابع ارزیابی (Evaluation Functions) ابزارهایی هستند که دادهها را بررسی، تحلیل و پردازش میکنند.
این توابع میتوانند انواع مختلفی از وظایف مانند ارزیابی مقادیر، تغییر دادهها، یا اعتبارسنجی اطلاعات را انجام دهند.
در ادامه، توضیحاتی جامع درباره توابع CASE، CURRENT_USER، ISDATE، ISNULL و ISNUMERIC ارائه میشود.
انواع توابع ارزیابی در پایگاه داده 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): اگر مقدار عددی نباشد.
کاربردهای 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
-
شناسایی نمادهای خاص
تابع ISNUMERIC مقادیر خاصی مانند $، + و - را به عنوان عدد معتبر در نظر میگیرد، زیرا این نمادها در برخی فرهنگها یا فرمتها قابل قبول هستند.
SELECT ISNUMERIC('$100'); -- نتیجه: 1
SELECT ISNUMERIC('-50'); -- نتیجه: 1
-
پشتیبانی از انواع مختلف دادهها
این تابع میتواند مقادیر عددی از نوعهای مختلف (مانند عدد صحیح، اعشاری، و غیره) را شناسایی کند. -
محدودیتها
تابع ISNUMERIC ممکن است در برخی موارد نتایج غیرمنتظرهای تولید کند. به عنوان مثال:
SELECT ISNUMERIC('123D'); -- نتیجه: 0
SELECT ISNUMERIC('123E4'); -- نتیجه: 1
دوره های مرتبط
آموزش پایگاه داده SqlServer
پایگاه داده Sqlserver یکی از پایگاه داده های مهم برای ذخیره اطلاعات محسوب میشود .