sql >> Database teknologi >  >> RDS >> PostgreSQL

Division ( / ) giver ikke mit svar i postgresql

Dine kolonner har heltalstyper, og heltalsdivision trunkerer resultatet mod nul. For at få et nøjagtigt resultat skal du caste mindst én af værdierne til flydende eller decimal:

select cast(dev_cost as decimal) / sell_cost from software ;

eller bare:

select dev_cost::decimal / sell_cost from software ;

Du kan derefter runde resultatet op til det nærmeste heltal ved hjælp af ceil() funktion:

select ceil(dev_cost::decimal / sell_cost) from software ;

(Se demo på SQLFiddle.)



  1. Sådan genereres scripts for at genskabe fremmednøglebegrænsninger i SQL Server-databasen - SQL Server / TSQL vejledning del 73

  2. sql-sætningsfejl:kolonne .. eksisterer ikke

  3. Oracle kopiere data til en anden tabel

  4. Hvordan fungerer PostgreSQL security_barrier views?