MS-SQL 的算術小數點

Posted by Eric... On 2011年7月22日 星期五 0 意見

今天早上下一個 SQL 的簡單計算式,要算 “1/24” 這個簡單的算式,可是在 MS-SQL 中答案就只有出現 0。自動幫我四捨五入了,真是多事。可是我要的答案是有小數值。上網找了一下解法,真沒想到寫 SQL 寫了十來年了,現在才需要查這個小問題,我用 Oracle DB SQL 的算術計算可是保留原汁原味,不會幫你自動處理這個算術結果。嗯…我比較喜歡 Oracle。

你說解法有嗎? 有,請參照下方的 SQL 語法。

-- 各式不同的算式處理
SELECT 1/24                -- 0 <-- 這就是我第一次下的語法 
SELECT 1.00/24             -- 0.41666 <- 這個看來最迅速, 用來寫 SQL 測試
SELECT 1.0000/24.0000      -- 0.04166666666                       
SELECT CAST(1/24 AS NUMERIC(18,4))        -- 0
SELECT CAST(1/24.0000 AS NUMERIC(18,4))   -- 0.0417
SELECT CONVERT(NUMERIC(18,4),1.0/24)      -- 0.0417 <- 這個看來最標準
SELECT CONVERT(NUMERIC(18,4),1.000/24)    -- 0.0417 
SELECT 1.0000/24.0000      -- 0.04166666666

Status: Case closed.


READ MORE