Problémy zaokrúhľovania v desatinných číslach v SQL

Autor: Roger Morrison
Dátum Stvorenia: 25 September 2021
Dátum Aktualizácie: 14 November 2024
Anonim
Problémy zaokrúhľovania v desatinných číslach v SQL - Články
Problémy zaokrúhľovania v desatinných číslach v SQL - Články

Obsah

Jazyk SQL automaticky zaokrúhľuje čísla, ak stĺpec tabuľky, do ktorého uložíte, umožňuje iba určitú presnosť desatinných miest. Môžete pracovať s problémami s presnosťou pomocou funkcie SQL "round". Táto funkcia umožňuje kontrolovať, ako SQL ukladá číselné hodnoty do databázových tabuliek.


Naučte sa obiehať čísla v SQL (Hemera Technologies / AbleStock.com / Getty Images)

problém

Problém so zaokrúhľovaním SQL si všimnete pri pohľade na údaje v tabuľkách. Zobrazená číselná hodnota nie je rovnaká ako hodnota, ktorú ste uložili pomocou príkazu "insert". Dátové typy stĺpcov SQL umožňujú nastaviť presnosť desatinnej čiarky. Ak chcete mať iba dve desatinné miesta a pokúsiť sa uložiť číslo s tromi, SQL zaokrúhli hodnotu.

Štruktúra tabuľky

Dátový typ stĺpca môžete zmeniť pomocou editora tabuliek SQL. Môžete upravovať tabuľky v Microsoft SQL Server Management Studio, ktorý je dodávaný s SQL Server. Kliknite pravým tlačidlom myši na tabuľku a zvoľte "Zmeniť". Vyberte presnosť v zozname údajov typu stĺpca, aby ste zvýšili počet desatinných miest a opravili problém zaokrúhľovania.


Funkcia Round

Ak nechcete upraviť typ údajov tabuľky, použite funkciu zaokrúhľovania na zmenu správania pri číselnom ukladaní. Zaokrúhliť nahor, nadol alebo nechať funkciu vykonávať štandardné zaokrúhľovanie desatinných hodnôt. Napríklad nasledujúci kód zaokrúhli:

kolo (stĺpec, 2, -1)

Táto funkcia sa zaokrúhli na dve desatinné miesta, vždy nahor. Odstránenie parametra "-1" spôsobí, že SQL vykoná štandardné zaokrúhľovanie, tj hore, ak je hodnota väčšia alebo rovná "5" a nadol, ak je hodnota nižšia.

úvahy

Keď zmeníte správanie zaokrúhľovania v SQL, musíte tiež skontrolovať ľubovoľný stĺpec, ktorý má súčet zaokrúhlených čísel. Tento stĺpec bude mať nesprávnu hodnotu, takže budete musieť prepočítať sumu, aby ste opravili prípadné chyby.