SQL har tre funksjoner som kan runde verdier til et bestemt antall desimaler . Du kan bruke disse funksjonene til å løse en rekke database -relaterte problemer , alt fra å bli kvitt fraksjoner av pennies på finansielle transaksjoner til regularizing data innganger fra flere vitenskapelige instrumenter . Hvis du er ny til SQL, kan dens avrunding funksjoner virke litt rart, og kan føre til noen tilpasning problemer . Konvensjonell Avrunding
SQL er " round () "-funksjonen tar en eksisterende verdi og runder det til det angitte antallet desimaler. Formatet er som følger : en
RUNDE ( [ value] , [ n ] , [ 1 ] ) )
Her " [ verdi ] " er en desimal verdi , og " [ n ] " er antall sifre verdien skal avrundes til . Konvensjonelle Avrunder verdier på 0,5 eller høyere opp , og verdiene av 0,49 og lavere ned . Sette verdien til " 0 " runder til heltallsverdiene ; å sette verdien til " -1 " runder til nærmeste multiplum av 10. . Den "Round ( ) "-funksjonen tredje parameter , "[1 ] , " avkorter nummeret til det angitte antall desimaler hvis settes til en annen verdi enn null . En betydelig kilde til uventede avrunding problemer kommer når , på grunn av en skrivefeil , er den tredje parameteren satt og antall avkorter snarere enn runder .
Gulv og tak
SQL bruker " eTASJE ( ) "-funksjonen for å tvinge verdier å runde ned til nærmeste verdi , og "tak ( ) "-funksjonen til å runde opp til nærmeste verdi. Begge disse funksjonene returnerer heltall verdier , selv ved hjelp av en flottør datatype med en rekke desimaler som er angitt returnerer en verdi med nuller etter desimalen
Anbefalt datatyper
< . br >
mest sannsynlige årsaken til avrundingsfeil i SQL stammer fra ved hjelp av en uventet datatype for den numeriske uttrykk i " round () "-funksjonen , eller fra bruk av "gulvet ( )" eller " TAKET ( ) " og venter å få en desimal datatype , i stedet for et heltall. Hvis SQL funksjon er å gi deg uventede avrunding resultater , må du kontrollere at " CAST ( ) "-funksjonen som er å angi antall har datatype satt til " heltall ", " desimal ", " penger " eller " smallmoney . " The " desimal " datatype er begrenset til bare 38 siffer totalt, noe som er en begrensning at noen folk utenfor det vitenskapelige samfunn kjøre inn .