Innhold
SQL-språket runder automatisk tall hvis tabellkolonnen der du vil lagre, bare tillater en viss presisitet av desimaler. Du kan jobbe med presisjonsproblemer ved hjelp av SQL-runden-funksjonen. Denne funksjonen lar deg kontrollere hvordan SQL lagrer numeriske verdier i databasetabellene.
Lær hvordan du kan runde tall i SQL (Hemera Technologies / AbleStock.com / Getty Images)
problem
Du vil legge merke til SQL-rundingsproblemet når du ser på dataene i tabellene. Den numeriske verdien som vises, er ikke den samme som den du lagret via "insert" -kommandoen. Datatypene i SQL-kolonnene lar deg angi presisjonen av desimaltegnet. Hvis du bare vil ha to desimaler og prøver å lagre et tall med tre, vil SQL rundt verdien.
Tabellstruktur
Du kan endre datatypen til en kolonne ved hjelp av en SQL-tabellredigerer. Du kan redigere tabellene dine i Microsoft SQL Server Management Studio, som følger med SQL Server. Høyreklikk på bordet og velg "Endre". Velg presisjonen i kolonnen datatype listen for å øke antall desimaler og korrigere avrundingsproblemet.
Rund Funksjon
Hvis du ikke vil endre tabellens datatype, bruk avrundingsfunksjonen for å endre den numeriske lagringsadferansen. Rund opp, ned eller la funksjonen utføre standard avrunding av desimalverdier. For eksempel, kjører følgende kode opp:
runde (kolonne, 2, -1)
Denne funksjonen runder med to desimaler, alltid oppover. Hvis du fjerner parameteren "-1", får SQL til å utføre standardrundingen, dvs. opp hvis verdien er større enn eller lik "5" og ned hvis verdien er lavere.
betraktninger
Når du endrer avrundingsadferd i SQL, må du også kontrollere hvilken som helst kolonne som har summen av avrundede tall. Denne kolonnen vil ha en feil verdi, så du må beregne summen for å korrigere eventuelle feil.