SQL Server研習錄(19)——ROUND函數
版權聲明
- 本文原創作者:清風不渡
- 博客地址:https://blog.csdn.net/WXKKang
一、ROUND()函數
返回一個數值,舍入到指定的長度或者精度
1、基本語法
基本語法如下:
ROUND ( numeric_expression , length [ ,function ] )
註釋:
(1)參數
numeric_expression: 是精確或近似數值數據類型類別(bit數據類型除外)的表達式
length: 他是numeric_expression的舍入精度,length必須是tinyint、smallint或int類型表達式。如果length爲正數,則將numeric_expression舍入到length指定的小數位數。如果length爲負數,則將numeric_expression小數點左邊部分舍入到length指定的長度
函數: 要執行的操作類型,function的數據類型必須是tinyint、smallint或int。如果function省略或其值爲0(默認值),則對numeric_expression進行舍入,如果指定了0以外的值,則將截斷numeric_expression
(2)返回類型
- 如果表達式結果爲tinyint,則返回類型爲int
- 如果表達式結果爲smallint,則返回類型爲int
- 如果表達式結果爲int,則返回類型爲int
- 如果表達式結果爲bigint,則返回類型爲bigint
- 如果表達式結果爲decimal和numeric類別(p,s),則返回類型爲decimal(p,s)
- 如果表達式結果爲money和smallmoney類型,則返回類型爲money
- 如果表達式結果爲float和real類型,則返回類型爲float
注: ROUND始終返回一個值。如果length爲負數,並且大於小數點前的數字個數,則ROUND將返回0,如果length爲負數,則無論什麼數據類型,ROUND都將返回一個舍入的numeric_expression
2、示例
示例一: 下面我們就使用一下ROUND()函數,並且學習並解釋它的各種情況及結果,代碼如下
PRINT '如果length爲負數,則將小數點左邊部分舍入到length指定的長度(四捨五入)'
PRINT ROUND(12.22622,-1)
PRINT ROUND(16.22622,-1)
PRINT '如果length爲整數,function爲0(默認值),則進行四捨五入'
PRINT ROUND(12.22322,2)
PRINT ROUND(12.22622,2)
PRINT '如果length爲正數,function爲其它值,則直接截斷(捨去)'
PRINT ROUND(12.22622,2,1)
執行結果如下: