Re: query concatenar un string

Lists: pgsql-es-ayuda
From: "Roberto Cesar Najera" <rob(at)rtp(dot)gob(dot)mx>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: query concatenar un string
Date: 2005-04-25 23:01:19
Message-ID: 014401c549ea$b264e9e0$8c000a0a@RTP.GOB.MX
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

hola lista necesito crear un update apartir de una select esto es

agregarle un string a cada registro para que me quede un update

select campo1 from tabla
y me arroja

campo1
----------------
1
2
3
4
5

ahora lo que quiero hacer es que me quede de la siguiente forma ç
campo1
------------
update tabla1 set campo1=1 where campo1=1
update tabla1 set campo1=2 where campo1=2
update tabla1 set campo1=3 where campo1=3
update tabla1 set campo1=4 where campo1=4
update tabla1 set campo1=5 where campo1=5

pero me marca un erro ala hora de concatenar

select ||' update tabla set campo2='|| gmecanico_cve || 'where campo1=campo1' from cup;

si se puede hacer esto ?

como seria

Gracias


From: Alvaro Herrera <alvherre(at)dcc(dot)uchile(dot)cl>
To: Roberto Cesar Najera <rob(at)rtp(dot)gob(dot)mx>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: query concatenar un string
Date: 2005-04-25 23:20:16
Message-ID: 20050425232015.GA30951@dcc.uchile.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

On Mon, Apr 25, 2005 at 06:01:19PM -0500, Roberto Cesar Najera wrote:
> hola lista necesito crear un update apartir de una select esto es
>
> agregarle un string a cada registro para que me quede un update

No puedes hacer eso en SQL. Tendrias que hacerlo en un lenguaje
externo.

Lo que si puedes hacer es usar el campo como entrada para el update, o
sea

update tabla1 set campo1=campo1 where campo1=1

Si necesitas hacer operaciones sobre "campo1" y actualizarlo basado en
eso entonces esta es la manera mas sencilla de hacerlo.

--
Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
Major Fambrough: You wish to see the frontier?
John Dunbar: Yes sir, before it's gone.


From: "Roberto Cesar Najera" <rob(at)dcaa(dot)unam(dot)mx>
To: "Alvaro Herrera" <alvherre(at)dcc(dot)uchile(dot)cl>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: query concatenar un string
Date: 2005-04-26 14:22:01
Message-ID: 003901c54a6b$50537510$8c000a0a@RTP.GOB.MX
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Ok, pero la idea es actualizar otro servidor, pero no se me ocurre otra cosa
mas que formando el update sacarlo en un archivo y ejecutarlo en otro
servidor !

o cual seria la manera mas optima de hacerlo

de antemano gracias !

----- Original Message -----
From: "Alvaro Herrera" <alvherre(at)dcc(dot)uchile(dot)cl>
To: "Roberto Cesar Najera" <rob(at)rtp(dot)gob(dot)mx>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Monday, April 25, 2005 6:20 PM
Subject: Re: [pgsql-es-ayuda] query concatenar un string

> On Mon, Apr 25, 2005 at 06:01:19PM -0500, Roberto Cesar Najera wrote:
> > hola lista necesito crear un update apartir de una select esto es
> >
> > agregarle un string a cada registro para que me quede un update
>
> No puedes hacer eso en SQL. Tendrias que hacerlo en un lenguaje
> externo.
>
> Lo que si puedes hacer es usar el campo como entrada para el update, o
> sea
>
> update tabla1 set campo1=campo1 where campo1=1
>
> Si necesitas hacer operaciones sobre "campo1" y actualizarlo basado en
> eso entonces esta es la manera mas sencilla de hacerlo.
>
> --
> Alvaro Herrera (<alvherre[(at)]dcc(dot)uchile(dot)cl>)
> Major Fambrough: You wish to see the frontier?
> John Dunbar: Yes sir, before it's gone.
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 8: explain analyze es tu amigo


From: Manuel Sugawara <masm(at)fciencias(dot)unam(dot)mx>
To: "Roberto Cesar Najera" <rob(at)rtp(dot)gob(dot)mx>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: query concatenar un string
Date: 2005-04-26 14:31:46
Message-ID: m3br818v8t.fsf@conexa.fciencias.unam.mx
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

"Roberto Cesar Najera" <rob(at)rtp(dot)gob(dot)mx> writes:

> pero me marca un erro ala hora de concatenar

Nota que decir ``me marca un error'' no es suficiente la mayoría de
las veces, es decir, nos tienes que decir también cual error te
marca y en que contexto, no olviden que AFAIK ninguno de nosotros
tiene bolita mágica.

> select ||' update tabla set campo2='|| gmecanico_cve || 'where campo1=campo1' from cup;

Te sobra el primer ||, ie quedaría como:

select 'update tabla set campo2= ' || gmecanico_cve || 'where campo1=campo1' from cup;

Saludos,
Manuel.


From: "Roberto Cesar Najera" <rob(at)rtp(dot)gob(dot)mx>
To: J(dot) Arturo Llanquihuén Martínez <arturo(at)llanquihuen(dot)cl>
Cc: <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: query concatenar un string
Date: 2005-04-26 20:33:44
Message-ID: 00aa01c54a9f$448fd6e0$8c000a0a@RTP.GOB.MX
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

ok, ya lo resolvi, es muy sencillo

desde el psql ejecutas \o ' /tmp/archivo.sql'
select ' update tabla set campo2='|| gmecanico_cve || 'where campo1='|| cup_cve ||';' from cup;

la instruccion \o manda todo lo que ejecutes al archivo especificado
y obiamente la 2da linea es el query

de antemano Muchas Gracias

----- Original Message -----
From: J. Arturo Llanquihuén Martínez
To: Roberto Cesar Najera
Sent: Tuesday, April 26, 2005 10:01 AM
Subject: Re: [pgsql-es-ayuda] query concatenar un string

mira hice lo que tenias de la siguiente manera
y consigo el update que necesitas, si usas el pgadmin
puedes ejecutar la salida a un archivo
y tendras tus 18000 updates obviamente tendras que cambiar
algunas nombres de campos en la consulta, pero se puede yo ya lo he hecho.

si no te queda claro sigue preguntando
saludos

CREATE TABLE tabla (
campo1 int2
)

insert into tabla (campo1) values (1);
insert into tabla (campo1) values (2);
insert into tabla (campo1) values (3);
insert into tabla (campo1) values (4);
insert into tabla (campo1) values (5);

select campo1 from tabla

select ' update tabla set campo1='||campo1||' where campo1='||campo1||';' from tabla

----- Original Message -----
From: Roberto Cesar Najera
To: J. Arturo Llanquihuén Martínez
Sent: Tuesday, April 26, 2005 10:39 AM
Subject: Re: [pgsql-es-ayuda] query concatenar un string

pues es que tengo 2 bd semejates en diferentes servidores, el problema es que tengo que actualizar ese campo, pero con los datos del otro servidor , esto es por que hice un update si where y me chute los datos de 18,000 registros y ahora tengo que recuperar solo esos datos, no copio toda la tabla por que ahi si son datos diferentes, lo que quiero copiar si son iguales

Espero no hacerte bolas !

----- Original Message -----
From: J. Arturo Llanquihuén Martínez
To: Roberto Cesar Najera
Sent: Tuesday, April 26, 2005 9:32 AM
Subject: Re: [pgsql-es-ayuda] query concatenar un string

de la siguiente manera queda el string que necesitas.

select ' update tabla set campo1='||campo1||' where campo1='||campo1 from tabla

aunque la verdad no entiendo aun para que quieres hacer eso.

saludos.

----- Original Message -----
From: Roberto Cesar Najera
To: pgsql-es-ayuda(at)postgresql(dot)org
Sent: Monday, April 25, 2005 7:01 PM
Subject: [pgsql-es-ayuda] query concatenar un string

hola lista necesito crear un update apartir de una select esto es

agregarle un string a cada registro para que me quede un update

select campo1 from tabla
y me arroja

campo1
----------------
1
2
3
4
5

ahora lo que quiero hacer es que me quede de la siguiente forma ç
campo1
------------
update tabla1 set campo1=1 where campo1=1
update tabla1 set campo1=2 where campo1=2
update tabla1 set campo1=3 where campo1=3
update tabla1 set campo1=4 where campo1=4
update tabla1 set campo1=5 where campo1=5

pero me marca un erro ala hora de concatenar

select ||' update tabla set campo2='|| gmecanico_cve || 'where campo1=campo1' from cup;

si se puede hacer esto ?

como seria

Gracias