第 2 部分:數字函式
與大多數現代關聯式資料庫產品一樣,SQL Server 也裝載了一系列內建函式。雖然各種關聯式資料庫有些函式非常相似,但確切的名稱和特徵可能會有所不同。因此,我們最好溫習一下常見 SQL 函式的 SQL Server 特定實作。在本系列的第 1 部分中,我們探討了字串函式。在今天的部分中,我們將繼續討論數字函式,這是一個在產生統計資料和計算值時非常有用的類別!
ABS
這不是人們準備去海灘而訓練的腹肌。相反,ABS 是「Absolute(絕對)」的縮寫。因此,ABS 函式接受一個數值作為引數,並傳回其絕對等值。簡單地說,ABS 傳回特定數字(不管是正數還是負數)的正數形式。以下是函式特徵:
ABS(inputNumber)
在數學和統計學中,偏差(deviation)是一個變數值和其他值(通常是該變數的平均值或平均值)之間的差異的測量。偏差可以帶正負號或不帶正負號。後者是 ABS 函式的用武之地。下面是 ClassicModels 範例資料庫的査詢,該資料庫顯示根據城市分組的客戶信用限額的帶正負號或不帶正負號(絕對)偏差:
ROUND
另一個非常普遍的數字函式是 ROUND。捨入函式在實現上可能有很大的不同;有些只四捨五入到整數,而有些允許你指定要捨入到的小數位數。而 SQL Server 的 ROUND 函式不止步於此,它能最多接受三個引數:
ROUND(number, decimals, operation)
- number:要捨入的浮點(小數)數
- decimals:要將數字捨入到的小數位數
- operation:影響捨入作業的選擇性參數。如果值為 0(或省略)時,函式執行常規捨入,即 5 或更大的數字增加下一個數位。除 0 以外的任何值都會導致函式將結果截斷小數位數。
將貨幣值捨入到小數點後兩位是非常常見的。以下是我們之前查詢的捨入結果:
CEILING
CEILING 函式類似於 ROUND,只是它總是進位至下一個整數值。因此,25.01 和 25.75 將進位至 26。其語法如下:
CEILING(number)
讓我們將 CEILING 函式套用於前面的査詢,比較捨入至最接近的整數的信用額度和透過 CEILING 篩選的信用額度:
FLOOR
FLOOR 與 CEILING 函式相反;它總是將一個數字捨入為小於或等於該數位的第一個整數。對於正數,FLOOR 只是截斷小數而不改變下一個最高整數。但是,對於負數,它會向下遞增整數。例如,-0.5 的 FLOOR 是 -1,因為它是第一個小於 -0.5 的整數。
FLOOR(number)
在不使用 ABS 的情况下將 FLOOR 函式套用於我們的範例査詢,可以顯示它對正數和負數的影響:
總結
在今天的文章中,我們討論了 SQL Server 的一些最重要的數字函式。在下一篇文章中,我們將研究日期函式。
如果你對 Navicat for SQL Server 感興趣,可以免費試用 14 天!
Rob Gravelle 居住於加拿大渥太華,是一名有 20 多年經驗的 IT 專家。過住,Rob 曾為情報相關的組織(如加拿大邊境服務局和各種商業組織)建置系統。在業餘時間,Rob 是一名出色的吉他演奏家,並發行了幾張 CD。