On Thu, 2007-11-29 at 21:22 -0800, Postgres User wrote: > I have a large function that's doing a number of calcs. The final > return value is wrong for a simple reason: any division statement > where the numerator is less than the denominator is returning a zero. > > Each of these statements return a 0, even when properly cast: > > select 1/100 > select Cast(1 / 100 As decimal) > select Cast(1 / 100 As numeric(6,2)) > > How can I write statements that returns a decimal? > select (1::numeric/100::numeric) same as if you do a 1.0/100.0 > > The problem doesn't appear to be that Postgres won't return decimal > values, as these statements return the correct value: > > select .01 > select Cast(.01 As decimal) > > ---------------------------(end of broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings ---------------------------(end of broadcast)--------------------------- TIP 9: In versions below 8.0, the planner will ignore your desire to choose an index scan if your joining column's datatypes do not match