خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


استفاده از تابع ()ROUND در SQL Server

استفاده از تابع ()ROUND در SQL Server
در SQL Server، تابع ریاضی ROUND به شما امکان می دهد تا یک عدد را با یک طول یا دقت مشخص گرد کنید. این تابع سه پارامتر یا آرگومان اختیاری می پذیرد که به شما امکان می دهد عدد را گرد یا کوچک کنید. Syntax استفاده از این تابع بصورت زیر می باشد:

نرم افزار سامانه مودیان راهکار



ROUND ( numeric_expression , length [ ,function ] )

numeric_expression در واقع عدد است که به تابع به عنوان پارامتر اول می دهیم و عملیات گرد کردن روی آن انجام می شود.
Length میزان دقتی است که عدد بدان گرد می شود. این پارامتر می تواند از نوع tinyint، smallint، int باشد. numeric_expression به مقداری مشخص شده در Length گرد می شود.
Function عملیاتی است که انجام می شود. این پارامتر هم می تواند از نوع tinyint، smallint، int باشد. وقتی این آرگومان مقدار دهی نشود(بصورت پیشفرض مقدار آن 0 است)، numeric_expression گرد می شود و اگر مقداری غیر از 0 را وارد کنید، numeric_expression کوچک می شود.
ساده ترین مثالی که می توانید با نحوه کار تابع آشنا شوید:

SELECT ROUND(1.49, 1) Result;

+----------+
| Result |
|----------|
| 1.50 |
+----------+

در این حالت، شماره به بالا گرد شد. حال اگر پارامتر دوم را 0 مقداردهی کنیم، خروجی چه خواهد شد؟ به اسکریپت زیر دقت کنید:


SELECT ROUND(1.49, 0) Result;

+----------+
| Result |
|----------|
| 1.00 |
+----------+

وقتی پارامتر دوم 0 باشد، مقدار اعشار گرد می شود. از آنجایی که کمتر 0.5 است، پس به پایین گرد می شود. اگر همین مثال فوق را با عدد 1.50 و پارامتر دوم 0 تست کنیم، نتیجه زیر حاصل می شود:

SELECT ROUND(1.50, 0) Result;

+----------+
| Result |
|----------|
| 2.00 |
+----------+

در مثال زیر، ارقام بیشتر از اعشار گرد می شوند. لطفا به اسکریپت زیر دقت کنید:

SELECT ROUND(1.235, 2) Result;

+----------+
| Result |
|----------|
| 1.240 |
+----------+

حتی می تواتنیم از ارقام بیشتر اعشار استفاده کنید:

SELECT ROUND(1.23456789123456789, 8) Result;

+---------------------+
| Result |
|---------------------|
| 1.23456789000000000 |
+---------------------+

همانطور که بالاتر تضویح داده شد، پارامتر اختیاری سومی هم وجود دارد که با وجود آن تعیین می شود که عدد رند و یا کوتاه شود. مثال های قبلی، همه برای گرد کردن اعداد بودند چرا که پارامتر سوم را مقداردهی نکرده بودیم. وقتی آرگومان سوم را 0 یا خالی رد کنید، عدد گرد و اگر مقداردهی کنید، عدد کوتاه یا کوچکتر خواهد شد.

SELECT
ROUND(1.236, 2) 'Rounded (by default)',
ROUND(1.236, 2, 0) 'Rounded (explicitly)',
ROUND(1.236, 2, 1) 'Truncated';

+------------------------+------------------------+-------------+
| Rounded (by default) | Rounded (explicitly) | Truncated |
|------------------------+------------------------+-------------|
| 1.240 | 1.240 | 1.230 |
+------------------------+------------------------+-------------+

در مثال زیر، آرگومان دوم را بصورت منفی مقدار دهی می کنیم. در این صورت بخش هایی از قسمت غیراعشاری عدد، 0 می شود. لطفا به مثال زیر توجه کنید:

SELECT ROUND(123.456, -1) Result;

+----------+
| Result |
|----------|
| 120.000 |
+----------+

خب، اگر 3 به به 5 یا عدد بیشتر تغییر دهیم، نتیجه زیر حاصل خواهد شد:

SELECT ROUND(125.456, -1) Result;

+----------+
| Result |
|----------|
| 130.000 |
+----------+

حتی اگر عدد اعشاری هم نباشد، باز هم می توانید به همین شکل استفاده کنید:

SELECT ROUND(125, -1) Result;

+----------+
| Result |
|----------|
| 130 |
+----------+

همانطور که در مثال ها مشاهده کردید، اگر مقدار کسر بیشتر 0.5 بود، به سمت بالا و در غیر اینصورت به یک عدد پایین تر گرد می شد. اما در مورد مقادیر منفی، بر عکس می باشد. اگر اعشار بزرگتر یا مساوی 0.5 باشد، به عدد کوچکتر و در غیر اینصورت به عدد بزرگتر گرد می شود. حتی مقادیر منفی هم توسط این تابع می توانند گرد شوند.

SELECT
ROUND(1.50, 0) Positive,
ROUND(-1.50, 0) Negative;

+------------+------------+
| Positive | Negative |
|------------+------------|
| 2.00 | -2.00 |
+------------+------------+


نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.


دسته بندی مطالب خوش آموز