今天早上下一個 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.