/ / TSQL користувацького округлення - sql, sql-сервер, функція, tsql, округлення

TSQL користувацького округлення - sql, sql-server, функція, tsql, округлення

Я використовую SQL-Server 2008 R2.

Мені потрібно досягти наступного округлення. Якщо перша цифра після десяткової крапки дорівнює 0, її слід округлити до нижньої сторони, якщо вона вище або дорівнює 1, повинна бути округлена до вищої сторони, дані зразка:

3.09   ---> 3
3.1    ---> 4
0      ---> 0
3.005  ---> 3
668.15 ---> 669

Який найпростіший спосіб досягти цього?

Я намагався зробити щось подібне:

SELECT CEILING(3.09) -- this is incorrect, returning 4 instead of 3
SELECT ROUND(3.09,0) -- with 3.09 is ok, but if I"m trying to round 3.1 It still returning 3.00 instead of 4

Може, як-небудь я міг би поєднати це? Або мені потрібна будь-яка інша функція?

Відповіді:

4 для відповіді № 1
SELECT ROUND(val + 0.4, 0) rnd_val
FROM (
VALUES
(3.09),
(3.1  ),
(0),
(3.005),
(668.15)
)v (val)

введіть опис зображення тут