Skip site navigation (1) Skip section navigation (2)

Re: Concatenar cadena texto con booleano

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Yoel Mc Lennan <listas(at)yoel(dot)com(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Concatenar cadena texto con booleano
Date: 2008-07-24 14:09:43
Message-ID: 20080724140943.GA9094@alvh.no-ip.org (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Yoel Mc Lennan escribió:

Hola,

> Buenas, alguna idea de como concatenar un string con un boolean ?
> 
> eJ  :
> nombre varchar;
> propio bool;
> dato vacrhar;
> 
> propio=false;
> 
> 
> dato := nombe || propio   (aparentemente no se puede)

En 8.3 funciona bien:

alvherre=# select 'hola'::text || 't'::bool;
 ?column? 
----------
 holatrue
(1 ligne)

Pero en 8.2 falla:

alvherre=# select 'hola'::text || 't'::bool;
ERROR:  operator does not exist: text || boolean
LINE 1: select 'hola'::text || 't'::bool;
                            ^
HINT:  No operator matches the given name and argument type(s). You may need to add explicit type casts.

El experimento obvio seria aplicar un cast a texto, pero no funciona:

alvherre=# select 'hola'::text || 't'::bool::text;
ERROR:  cannot cast type boolean to text
LINE 1: select 'hola'::text || 't'::bool::text;
                                          ^


Lo que puedes hacer es convertir el booleano a cstring usando la funcion
boolout(), y luego el cstring a texto usando la funcion textin(), de la
siguiente forma:

alvherre=# select 'hola'::text || textin(boolout('t'::bool));
 ?column? 
----------
 holat
(1 row)


Observa que la representacion en texto del booleano es distinta en 8.2
(una sola letra, t o f) que en 8.3 ("true" o "false").  Si quieres hacer
algo mas complicado necesitaras un CASE.

-- 
Alvaro Herrera                  http://www.amazon.com/gp/registry/5ZYLFMCVHXC
"Cómo ponemos nuestros dedos en la arcilla del otro. Eso es la amistad; jugar
al alfarero y ver qué formas se pueden sacar del otro" (C. Halloway en
La Feria de las Tinieblas, R. Bradbury)

In response to

pgsql-es-ayuda by date

Next:From: Alvaro HerreraDate: 2008-07-24 14:11:43
Subject: Re: Linea de Comandos
Previous:From: Miguel Rodríguez PenabadDate: 2008-07-24 14:04:14
Subject: Re: [OT] como lograr campo consecutivo sin fallar ?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group