Проблем:
Искате да закръглите число до определен брой десетични знаци.
Пример:
Нашата база данни има таблица с име product
с данни в следните колони:id
, name
и price_net
.
id | име | price_net |
---|---|---|
1 | хляб | 2,34 |
2 | кроасан | 1.22 |
3 | ролка | 0,68 |
Да предположим, че има данък от 24% за всеки продукт и искате да изчислите брутната цена на всеки артикул (т.е. след данъци) и да закръглите стойността до два знака след десетичната запетая.
Решение:
SELECT id, ROUND( price_net*1.24 , 2 ) as price_gross FROM product;
Тази заявка връща брутната цена, закръглена до два знака след десетичната запетая:
id | бруто_цена |
---|---|
1 | 2,90 |
2 | 1,51 |
3 | 0,84 |
Дискусия:
Ако искате да закръглите число с плаваща запетая до определен брой десетични знака в SQL, използвайте функцията ROUND. Първият аргумент на тази функция е колоната, чиито стойности искате да закръглите; вторият аргумент е незадължителен и обозначава броя на местата, до които искате да закръглите. По подразбиране, ако не посочите втория аргумент, функцията закръглява до най-близкото цяло число.
В този пример няма да посочим броя на местата, до които искаме да закръгляме колоната:
SELECT id, ROUND(price_net*1.24) as price_gross FROM product;
А ето и съответния резултат:
id | бруто_цена |
---|---|
1 | 3 |
2 | 2 |
3 | 1 |