602SQL-Úplná dokumentace Index  

Jak zaokrouhlovat čísla v SQL?

Jazyk SQL nedisponuje standardní funkcí pro zaokrouhlování čísel. Pro zaokrouhlování lze však snadno využít typové konverze prováděné pomocí funkce CAST.

Zaokrouhlování na stanovený počet desetinných míst

Pro zaokrouhlení použijte funkci:

CAST(hodnota AS NUMERIC(max_počet_platných_číslic, počet_desetinných_míst))

kde hodnota je zaokrouhlovaná číselná hodnota, max_počet_platných_číslic je maximální počet číslic potřebných pro zápis hodnoty (včetně desetinných míst) a počet_desetinných_míst je počet míst za desetinnou tečkou, na něž zaokrouhlujete.

Počet platných číslic nesmí překročit 19, neboť to je přesnost, s níž se provádějí číselné výpočty.

Zaokrouhlení na mocniny deseti

Pro zaokrouhlení na mocniny deseti (např. na desítky, stovky, tisíce, milióny) použijte podobný postup. Hodnotu však před zaokrouhlením vydělte zvolenou mocninou, zaokrouhlete na celé číslo a pak vynásobte stejnou mocninou:

CAST(hodnota/1eN AS NUMERIC(max_počet_platných_číslic, 0)) * 1eN

kde N je mocnina.

Například při zaokrouhlování na tisíce (třetí mocnina deseti) použijte zápis:

CAST(hodnota/1e3 AS NUMERIC(19, 0)) * 1e3
V jazyce SQL lze pro zaokrouhlování použít i původně klientské funkce jazyka Round a Trunc.