RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Duda con concatenación de texto

From: MIGUEL CANCHAS <mcanchas(at)tsr(dot)com(dot)pe>
To: 'Guillermo Muñoz' <guillermo(dot)munoz(at)grupotekne(dot)com(dot)ar>, MIGUEL CANCHAS <mcanchas(at)tsr(dot)com(dot)pe>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Duda con concatenación de texto
Date: 2007-10-16 13:53:46
Message-ID: 410117BB01F4D611B73A00010331DD2403B581BA@tsnt.tsr.com.pe
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

-----Mensaje original-----
De: Guillermo Muñoz [mailto:guillermo(dot)munoz(at)grupotekne(dot)com(dot)ar]
Enviado el: Martes, 16 de Octubre de 2007 08:44 a.m.
Para: MIGUEL CANCHAS; pgsql-es-ayuda(at)postgresql(dot)org
Asunto: Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Duda con concatenación
de texto

>El coalesce me parece bien, pero yo lo intento poner para una vista y no me
>permite, a que se debe ese error o como lo podria poner para una vista ?

>GRacias
Raro, te tendria que permitir. podes postear el create de la vista?

Saludos
Guillermo Muñoz
----- Original Message -----
From: "MIGUEL CANCHAS" <mcanchas(at)tsr(dot)com(dot)pe>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Tuesday, October 16, 2007 10:30 AM
Subject: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Duda con concatenación de
texto

-----Mensaje original-----
De: Yosip Abraham Curiel Jiménez [mailto:snake77se(at)gmail(dot)com]
Enviado el: Martes, 16 de Octubre de 2007 07:37 a.m.
Para: mortega(at)tc(dot)com(dot)ve
CC: postgreSQL
Asunto: Re: [pgsql-es-ayuda] Duda con concatenación de texto

On 10/16/07, Miguel Ortega < mortega(at)tc(dot)com(dot)ve <mailto:mortega(at)tc(dot)com(dot)ve> >
wrote:

Yosip Abraham Curiel Jiménez escribió:
> Hola a todos estaba haciendo unos query para depurar una data, y
> necesitaba hacer un campo texto con otra serie de campos de otra
> tabla, estaba usando case when para decidir pero me esta pasando que
> cuando uno de los campos es empty string no concatena nada, es decir
> me viene vacio el resultado.
>
> select case
> when trim(ed.nomcorrec) || ' ' || trim(ed.ape1corr) || ' ' ||
> trim(ed.ape2corr) != '' then
> trim(ed.nomcorrec) || ' ' || trim(ed.ape1corr) || ' ' ||
> trim( ed.ape2corr)
> when trim(ed.nomprop) || ' ' || trim( ed.ape1prop) || ' ' ||
> trim(ed.ape2prop) != '' then
> trim(ed.nomprop) || ' ' || trim(ed.ape1prop) || ' ' ||
> trim( ed.ape2prop)
> else
> ''
> end as nombre from xxx
>
> Lo que me di cuenta fue que el tipo de dato es "text" no es varchar no
> se si ese tipo de dato tiene algun inconveniente.
>
> gracias de antemano,
>
>
> --
> Yosip Curiel (Snake77SE)
Hola....

Creo que te conviene utilizar la funcion COALESCE con todos los campos
de texto... Si no me equivoco, si haces SELECT 'Hola Mundo!!' || Null;
te retornara Null; si utilizas SELECT 'Hola Mundo!!' ||
COALESCE(Null,''), te devolvera "Hola Mundo!!" como debe ser....
Investiga un poco en base a lo que te menciono y haz las pruebas
pertinentes...

Saludos

--
_________________________________________
Miguel A. Ortega B.
Analista de Sistemas y Soporte a Usuarios
<0416 - 642 12 26> / < mortega(at)tc(dot)com(dot)ve <mailto:mortega(at)tc(dot)com(dot)ve> >
Technologies Consulting C.A.

Si ya me funcinó eran los nulos exactamente muchas gracias a todos...

--
Yosip Curiel (Snake77SE)

El coalesce me parece bien, pero yo lo intento poner para una vista y no me
permite, a que se debe ese error o como lo podria poner para una vista ?

GRacias

[MIGUEL CANCHAS]

CREATE OR REPLACE VIEW "public"."vdatos_vi" (
tipo_documento,
tipo_ingreso,
nombre_almacen,
itemvi,
idtipo_ingreso,
idocompra,
itemoc,
idpedido,
idpartida,
guiarem,
idhilo,
lote,
humedad,
envase,
envase_cantidad,
tipo,
tipo_cantidad,
peso_bruto,
peso_neto,
peso_guia,
tipo_cono,
origen,
ubica,
idvihilo,
idalmacen,
fecha_emision,
idocompra1,
idopedido,
idtdoc,
talonario,
ndocum,
fecha_ingreso,
idemisor,
idreceptor,
idprop,
idoperario,
fecha_pesado,
hora_pesado,
titulo_hilo,
desc_hilo,
nombre_emisor,
nombre_receptor,
nombre_propietario)
AS
SELECT coalesce(mtipo_documento.tipo_documento,'') as tipo_documento,
coalesce(mtipo_ingreso.tipo_ingreso,'')as tipo_ingreso,
malmacen.nombre_almacen, vihilos2.itemvi, vihilos2.idtipo_ingreso,
vihilos2.idocompra, vihilos2.itemoc, vihilos2.idpedido,
vihilos2.idpartida,
vihilos2.guiarem, vihilos2.idhilo, vihilos2.lote, vihilos2.humedad,
vihilos2.envase, vihilos2.envase_cantidad, vihilos2.tipo,
vihilos2.tipo_cantidad, vihilos2.peso_bruto, vihilos2.peso_neto,
vihilos2.peso_guia, vihilos2.tipo_cono, vihilos2.origen, vihilos2.ubica,
vihilos1.idvihilo, vihilos1.idalmacen, vihilos1.fecha_emision,
vihilos1.idocompra AS idocompra1, vihilos1.idopedido, vihilos1.idtdoc,
vihilos1.talonario, vihilos1.ndocum, vihilos1.fecha_ingreso,
vihilos1.idemisor, vihilos1.idreceptor, vihilos1.idprop,
vihilos1.idoperario, vihilos1.fecha_pesado, vihilos1.hora_pesado,
mhilos.titulo_hilo, mhilos.desc_hilo, emisor.nomcliente AS
nombre_emisor,
receptor.nomcliente AS nombre_receptor, propietario.nomcliente AS
nombre_propietario
FROM ((((((((vihilos1 LEFT JOIN vihilos2 ON ((vihilos1.idvihilo =
vihilos2.idvihilo))) LEFT JOIN malmacen ON ((vihilos1.idalmacen =
malmacen.idalmacen))) LEFT JOIN mtipo_documento ON ((vihilos1.idtdoc =
mtipo_documento.idtdoc))) LEFT JOIN mtipo_ingreso ON
((vihilos2.idtipo_ingreso = mtipo_ingreso.idtipo_ingreso))) LEFT JOIN
mhilos ON ((vihilos2.idhilo = mhilos.idhilo))) LEFT JOIN mclientes
emisor
ON ((vihilos1.idemisor = emisor.idcliente))) LEFT JOIN mclientes
receptor
ON ((vihilos1.idreceptor = receptor.idcliente))) LEFT JOIN mclientes
propietario ON ((vihilos1.idprop = propietario.idcliente)))
ORDER BY vihilos1.idvihilo, vihilos2.itemvi;

el error es :
ERROR: cannot change data type of view column "tipo_documento"

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guillermo Muñoz 2007-10-16 14:07:17 Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Duda con concatenación de texto
Previous Message Guillermo Muñoz 2007-10-16 13:44:27 Re: [pgsql-es-ayuda] RE: [pgsql-es-ayuda] Duda con concatenación de texto