Thread: Booleans and Casting
I have the following SQL statement, which doesn't work (though I wish it did): select sum(value * ( plulabel = 'FO' )) from btmm group by gis_tag; PG quite correctly complains that: ERROR: There is more than one possible operator '*' for types 'float4' and 'bool' You will have to retype this query using an explicit cast However, when I do this: select sum(value * int( plulabel = 'FO' )) from btmm group by gis_tag; I still get an error: ERROR: No such function 'int' with the specified attributes I can find no function at all to use to cast booleans to what I want, which is 1 = true, 0 = false (IE, the standard cast for boolean -> number). Any advice? -- __ / | Paul Ramsey | Refractions Research | Email: pramsey@refractions.net | Phone: (250) 885-0632 \_
Paul Ramsey ha scritto:
I have the following SQL statement, which doesn't work (though I wish itcreate function int(bool) returns int4 as
did):select sum(value * ( plulabel = 'FO' )) from btmm group by gis_tag;
PG quite correctly complains that:
ERROR: There is more than one possible operator '*' for types
'float4' and 'bool' You will have to retype this query using an explicit
castHowever, when I do this:
select sum(value * int( plulabel = 'FO' )) from btmm group by gis_tag;
I still get an error:
ERROR: No such function 'int' with the specified attributes
I can find no function at all to use to cast booleans to what I want,
which is 1 = true, 0 = false (IE, the standard cast for boolean ->
number).Any advice?
--
__
/
| Paul Ramsey
| Refractions Research
| Email: pramsey@refractions.net
| Phone: (250) 885-0632
\_
'begin
if $1 then
RETURN 1;
else
RETURN 0;
end if;
end;' language 'plpgsql';
CREATE
drop table btmm;
DROP
create table btmm (gis_tga text, value float, plulabel text);
CREATE
insert into btmm values('a',13.2,'FO');
INSERT 190188 1
insert into btmm values('b',1.32,'FO');
INSERT 190189 1
insert into btmm values('c',31.32,'RO');
INSERT 190190 1
select sum(value * int( plulabel = 'FO' )) from btmm group by gis_tga;
sum
----
13.2
1.32
0
(3 rows)
--
- Jose' -
And behold, I tell you these things that ye may learn wisdom; that ye may
learn that when ye are in the service of your fellow beings ye are only
in the service of your God. - Mosiah 2:17 -