SELECT ROUND(CAST(0.51 AS FLOAT), 0) AS FiveOne
, ROUND(CAST(0.5 AS FLOAT), 0) AS Five
, ROUND(CAST(0.4999999 AS FLOAT), 0) AS FourNine
FiveOne Five FourNine
---------------------- ---------------------- ----------------------
1 1 0
Как я могу сделать округление 0,5 и 0,49999 до нуля (до ближайшего целого числа), но округление 0,51 до 1?Я полагаю, что могу сделать следующее, но есть ли более краткий способ?
SELECT ROUND(CAST(0.51 AS FLOAT), 0) AS FiveOne
, CASE WHEN CAST(0.5 AS FLOAT) <= CAST(0.5 AS FLOAT)
THEN FLOOR(CAST(0.5 AS FLOAT))
ELSE ROUND(CAST(0.5 AS FLOAT), 0)
END AS Five
, ROUND(CAST(0.4999999 AS FLOAT), 0) AS FourNine
FiveOne Five FourNine
---------------------- ---------------------- ----------------------
1 0 0