[英]Rounding in a case expression
我有一個案例狀態,我想將舍入應用於最終結果。 該列是導入字符串。 21.16800000000000。 我想把它四舍五入到 2。我試圖使用 Round(21.1680000000,2)。 這能做到嗎?
SELECT ITMMASTER.ITMREF_0,
YPRIMAT.ITMREF_0,
BASPRI_0,
ITMMASTER.TSICOD_6,
ITMMASTER.TCLCOD_0,
(BASPRI_0*2.205+CASE
WHEN ITMMASTER.TCLCOD_0 = '32221' --Multipying 2.205 times
1.25 (packaging per pound)
THEN '2.75625'
WHEN ITMMASTER.TCLCOD_0 = '32224' --Multipying 2.205 times
0.75 (packaging per pound)
THEN '1.65375'
WHEN ITMMASTER.TCLCOD_0 = '13221' --
THEN '2.75625'
WHEN ITMMASTER.TCLCOD_0 = '13241'
THEN '1.65375'
WHEN ITMMASTER.TCLCOD_0 = '36221'
THEN '6.7473'
WHEN ITMMASTER.TCLCOD_0 ='36224'
THEN '5.6448'
WHEN ITMMASTER.TCLCOD_0 = '41211'
THEN '1'
END) AS Importstring
FROM LIVE.YPRIMAT
INNER JOIN LIVE.ITMMASTER ON YPRIMAT.ITMREF_0 = ITMMASTER.ITMREF_0
你可以用round()
包圍表達式:
round(baspri_0_2 * 2.205 + case .. end, 2) as ImportString
或者,可能更好,您可以cast()
轉換為具有兩個小數位的小數:
cast(baspri_0_2 * 2.205 + case .. end as decimal(30, 2)) as ImportString
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.