SQL Tips: INT-muotoisen kentän jakolaskut

Jakaessa kahta INT-tyyppistä kenttää keskenään tulos on aina myös INT ja vieläpä niin, että tulosta ei pyöristetä, vaan se katkaistaan.

Esim. alla oleva SQL-lause palauttaa vastaukseksi 1.

SELECT 9 / 5

Jos taas lauseen jompikumpi arvo konvertoidaan desimaaliksi esimerkiksi näin

SELECT 9 * 1.0 / 5

tai näin

SELECT CAST(9 as float) / 5

palauttaa SQL vastaukseksi 1,8.

Samoin toimii sisäänrakennetut aggregointifunktiot, esim. AVG.

Esim. Tässä yksinkertainen taulu, jossa int-tyyppisessä kentässä arvoja

Normaali AVG-funktio palauttaa keskiarvoksi 2.

Kun taas konvertoituna palauttaa näin

Desimaalin muuttamiseksi kannattaa valita kyselyyn sopiva suorituskykyisin keino