Re: Boolean to int - Mailing list pgsql-sql

From Arjen van der Meijden
Subject Re: Boolean to int
Date
Msg-id ag2esu$jmb$1@news.tudelft.nl
Whole thread Raw
In response to Boolean to int  (Stephane Schildknecht <sschildknecht@aurora-linux.com>)
Responses Re: Boolean to int  (Stephane Schildknecht <sschildknecht@aurora-linux.com>)
List pgsql-sql
How about this hint in the postgresql-manual:
  "Tip:  Values of the boolean type cannot be cast directly to other 
types (e.g., CAST (boolval AS integer) does not work). This can be 
accomplished using the CASE expression: CASE WHEN boolval THEN 'value if 
true' ELSE 'value if false' END. See also Section 4.12. "

For more information: 
http://www.postgresql.org/idocs/index.php?datatype-boolean.html
and
http://www.postgresql.org/idocs/index.php?functions-conditional.html

Stephane Schildknecht wrote:
> Hi,=20
> 
>         I'd like to get 1 or 0 from a select on a boolean field.=20
> 
> How could I do ?
> 
> I tried the following rule, which I can't insert :
> 
> CREATE FUNCTION bool_to_int( boolean ) RETURNS integer AS '
>         DECLARE
>                 my_bool ALIAS FOR $1 ;
>         BEGIN
>                 -- Retourne 1 si true, 0 si false
>                 IF my_bool IS FALSE THEN=20
>                         RETURN 0 ;
>                 ELSIF my_bool IS TRUE THEN
>                                 RETURN 1 ;
>                 ELSE RETURN -1 ;
>                 END IF ;
>         END ;
> ' LANGUAGE 'plpgsql';
> 
> CREATE RULE boolean_return AS ON SELECT TO DOCUMENT DO INSTEAD
>         SELECT=20
>         document_id,
>         workflow_id,
>         type_document_id,
>         image_id,
>         theme_id,
>         document_version,
>         document_surtitre,
>         document_titre,
>         document_chapeau,
>         document_synthese,
>         document_corps,
>         document_pdf,
>         document_date_creation,
>         document_mot_clef,
>         (bool_to_int(document_online)) as document_online,
>         bool_to_int(document_valid) as document_valid FROM document;
> 
> 
> psql:cnambo_proc_stock.sql:69: ERROR:  select rule's target entry 15
>  has different type from attribute document_online
> 
> Who could help me ?
> 
> S@S
> 
> --=20
>  _St=E9phane SCHILDKNECHT___________________________________
> | AurorA-SAS 69-71, Av. Pierre Grenier 92100 BOULOGNE     |
> | Tel : 01.58.17.03.20 Fax : 01.58.17.03.21               |=20
> | mailto:sschildknecht@aurora-linux.com - ICQ : 142504394 |
> | "Free Markets have taught that innovation is best when  |=20
> |  ideas flow freely." Adam Smith                         |
> |_________________________________________________________|
> 
> 
> 
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
> 
> 





pgsql-sql by date:

Previous
From: teknokrat@yahoo.com (teknokrat)
Date:
Subject: Re: Can this be done with sql?
Next
From: "Ligia Pimentel"
Date:
Subject: Re: Selecting data from a table created in another database...