Lists: | pgsql-es-ayuda |
---|
From: | Pablo Braulio <brulics(at)gmail(dot)com> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Delete de filas que no sean esta, ni esta, .... |
Date: | 2006-08-05 13:47:57 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Hola a todos.
Para aquellos que todavía no estén disfrutando de sus vacaciones, como
yo, agradecería ayuda con esta cuestión que no consigo solucionar.
Tengo una tabla con los siguientes datos:
SELECT * from ficheros_recursos_programas;
id | fichero | recurso
----+---------+---------
4 | 80 | 60
8 | 78 | 60
9 | 90 | 60
9 | 91 | 60
9 | 92 | 60
(2 filas)
El caso es que quisiera hacer un delete de datos siempre que no el campo
fichero no fuera 80 y 78.
A simple vista podría hacer esto:
delete from ficheros_recursos_programas where fichero <> '80' and
fichero <> '78';
Pero esto no soluciona el problema, pues el condicional no siempre es el
mismo. Quiero decir que en este caso es 80, 78, y en otros casos puede
ser 80, 78, 90, 91, etc. Espero haberme explicado bien
He probado con esto, pero no funciona:
delete from ficheros_recursos_programas where fichero <> ('80', '78');
¿Alguien sabría decirme como se puede hacer esto?.
--
----
Saludos
Pablo
From: | Pablo Braulio <brulics(at)gmail(dot)com> |
---|---|
To: | alejandrob <alejandrob(at)ospsip(dot)org(dot)ar>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Delete de filas que no sean esta, ni esta, .... |
Date: | 2006-08-05 13:59:36 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
alejandrob escribió:
> podrias hacer : where fichero not in 80,78,54
>
En ese caso ocurre esto (con parenteris y comillas simples, tambien):
DELETE FROM ficheros_recursos_programas where fichero not in 80,78 ;
ERROR: error de sintaxis en o cerca de «80» at character 62
LINEA 1: ...ROM ficheros_recursos_programas where fichero not in 80,78 ;
^
--
----
Saludos
Pablo
From: | Leonel Nunez <lnunez(at)enelserver(dot)com> |
---|---|
To: | Pablo Braulio <brulics(at)gmail(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Delete de filas que no sean esta, ni esta, .... |
Date: | 2006-08-05 14:39:06 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Pablo Braulio wrote:
> Hola a todos.
>
> Para aquellos que todavía no estén disfrutando de sus vacaciones, como
> yo, agradecería ayuda con esta cuestión que no consigo solucionar.
Vacaciones ? que es eso ?
>
> Tengo una tabla con los siguientes datos:
>
> SELECT * from ficheros_recursos_programas;
> id | fichero | recurso
> ----+---------+---------
> 4 | 80 | 60
> 8 | 78 | 60
> 9 | 90 | 60
> 9 | 91 | 60
> 9 | 92 | 60
> (2 filas)
>
> El caso es que quisiera hacer un delete de datos siempre que no el
> campo fichero no fuera 80 y 78.
>
> A simple vista podría hacer esto:
>
> delete from ficheros_recursos_programas where fichero <> '80' and
> fichero <> '78';
>
> Pero esto no soluciona el problema, pues el condicional no siempre es
> el mismo. Quiero decir que en este caso es 80, 78, y en otros casos
> puede ser 80, 78, 90, 91, etc. Espero haberme explicado bien
>
> He probado con esto, pero no funciona:
>
> delete from ficheros_recursos_programas where fichero <> ('80', '78');
>
> ¿Alguien sabría decirme como se puede hacer esto?.
>
algo como asi :
leonel=> \d b;
Table "public.b"
Column | Type | Modifiers
--------+-------------------+-----------
a | character varying |
b | character varying |
id | integer |
leonel=> insert into b values ( '0123' , 'ttt3',3);
INSERT 0 1
leonel=> insert into b values ( '0123' , 'ttt2',2);
INSERT 0 1
leonel=> insert into b values ( '0123' , 'ttt1',1);
INSERT 0 1
leonel=> insert into b values ( '0123' , 'ttt4',4);
INSERT 0 1
leonel=> select * from b;
a | b | id
------+------+----
0123 | ttt3 | 3
0123 | ttt2 | 2
0123 | ttt1 | 1
0123 | ttt4 | 4
(4 rows)
leonel=> select * from b where id not in ( 1 , 2 );
a | b | id
------+------+----
0123 | ttt3 | 3
0123 | ttt4 | 4
(2 rows)
a lo que puedes agregar otra tabla con los identificadores a borrar :
leonel=> create table bb( id int );
CREATE TABLE
leonel=> insert into bb values ( 3 );
INSERT 0 1
leonel=> insert into bb values ( 4 );
INSERT 0 1
leonel=> select * from b where id not in ( select id from bb );
a | b | id
------+------+----
0123 | ttt2 | 2
0123 | ttt1 | 1
(2 rows)
Leonel
From: | "Jaime Casanova" <systemguards(at)gmail(dot)com> |
---|---|
To: | "Pablo Braulio" <brulics(at)gmail(dot)com> |
Cc: | alejandrob <alejandrob(at)ospsip(dot)org(dot)ar>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Delete de filas que no sean esta, ni esta, .... |
Date: | 2006-08-05 21:39:50 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
On 8/5/06, Pablo Braulio <brulics(at)gmail(dot)com> wrote:
> alejandrob escribió:
> > podrias hacer : where fichero not in 80,78,54
> >
>
delete from ficheros_recursos_programas where fichero not in (80, 78, 54);
o si el campo es character
delete from ficheros_recursos_programas where fichero not in ('80', '78', '54');
--
Atentamente,
Jaime Casanova
"Programming today is a race between software engineers striving to
build bigger and better idiot-proof programs and the universe trying
to produce bigger and better idiots.
So far, the universe is winning."
Richard Cook
From: | Pablo Braulio <brulics(at)gmail(dot)com> |
---|---|
To: | Jaime Casanova <systemguards(at)gmail(dot)com> |
Cc: | alejandrob <alejandrob(at)ospsip(dot)org(dot)ar>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Delete de filas que no sean esta, ni esta, .... |
Date: | 2006-08-06 17:44:14 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
Jaime Casanova escribió:
> On 8/5/06, Pablo Braulio <brulics(at)gmail(dot)com> wrote:
>> alejandrob escribió:
>> > podrias hacer : where fichero not in 80,78,54
>> >
>>
>
> delete from ficheros_recursos_programas where fichero not in (80, 78, 54);
>
> o si el campo es character
>
> delete from ficheros_recursos_programas where fichero not in ('80',
> '78', '54');
>
Así si.
Gracias.
--
----
Saludos
Pablo
From: | "Patricio Cifuentes Ithal" <pcifuentes(at)siigsa(dot)cl> |
---|---|
To: | "Pablo Braulio" <brulics(at)gmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Delete de filas que no sean esta, ni esta, .... |
Date: | 2006-08-07 14:53:42 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
con un IN se soluciona
delete from ficheros_recursos_programas where fichero IN ('80', '78');
--
Patricio Cifuentes Ithal
Ingeniero en Informática
Desarrollo Tecnológico
SIIGSA
(56-2) 204 60 22
----- Original Message -----
From: "Pablo Braulio" <brulics(at)gmail(dot)com>
To: <pgsql-es-ayuda(at)postgresql(dot)org>
Sent: Saturday, August 05, 2006 9:47 AM
Subject: [pgsql-es-ayuda] Delete de filas que no sean esta, ni esta, ....
> Hola a todos.
>
> Para aquellos que todavía no estén disfrutando de sus vacaciones, como
> yo, agradecería ayuda con esta cuestión que no consigo solucionar.
>
> Tengo una tabla con los siguientes datos:
>
> SELECT * from ficheros_recursos_programas;
> id | fichero | recurso
> ----+---------+---------
> 4 | 80 | 60
> 8 | 78 | 60
> 9 | 90 | 60
> 9 | 91 | 60
> 9 | 92 | 60
> (2 filas)
>
> El caso es que quisiera hacer un delete de datos siempre que no el campo
> fichero no fuera 80 y 78.
>
> A simple vista podría hacer esto:
>
> delete from ficheros_recursos_programas where fichero <> '80' and
> fichero <> '78';
>
> Pero esto no soluciona el problema, pues el condicional no siempre es el
> mismo. Quiero decir que en este caso es 80, 78, y en otros casos puede
> ser 80, 78, 90, 91, etc. Espero haberme explicado bien
>
> He probado con esto, pero no funciona:
>
> delete from ficheros_recursos_programas where fichero <> ('80', '78');
>
> ¿Alguien sabría decirme como se puede hacer esto?.
>
> --
> ----
> Saludos
>
> Pablo
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 3: si publicas/lees desde Usenet, por favor envía "subscribe-nomail"
> a majordomo(at)postgresql(dot)org para que tus mensajes puedan llegar
> a los suscriptores de la lista
From: | "Juanky Moral" <juanky(dot)moral(at)gmail(dot)com> |
---|---|
To: | "Patricio Cifuentes Ithal" <pcifuentes(at)siigsa(dot)cl> |
Cc: | "Pablo Braulio" <brulics(at)gmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Delete de filas que no sean esta, ni esta, .... |
Date: | 2006-08-07 19:57:36 |
Message-ID: | [email protected] |
Views: | Whole Thread | Raw Message | Download mbox | Resend email |
Lists: | pgsql-es-ayuda |
On 8/7/06, Patricio Cifuentes Ithal <pcifuentes(at)siigsa(dot)cl> wrote:
> con un IN se soluciona
>
> delete from ficheros_recursos_programas where fichero IN ('80', '78');
> --
Con un NOT IN (...)
;)
>
> Patricio Cifuentes Ithal
> Ingeniero en Informática
>
> Desarrollo Tecnológico
> SIIGSA
> (56-2) 204 60 22
> ----- Original Message -----
> From: "Pablo Braulio" <brulics(at)gmail(dot)com>
> To: <pgsql-es-ayuda(at)postgresql(dot)org>
> Sent: Saturday, August 05, 2006 9:47 AM
> Subject: [pgsql-es-ayuda] Delete de filas que no sean esta, ni esta, ....
>
>
> > Hola a todos.
> >
> > Para aquellos que todavía no estén disfrutando de sus vacaciones, como
> > yo, agradecería ayuda con esta cuestión que no consigo solucionar.
> >
> > Tengo una tabla con los siguientes datos:
> >
> > SELECT * from ficheros_recursos_programas;
> > id | fichero | recurso
> > ----+---------+---------
> > 4 | 80 | 60
> > 8 | 78 | 60
> > 9 | 90 | 60
> > 9 | 91 | 60
> > 9 | 92 | 60
> > (2 filas)
> >
> > El caso es que quisiera hacer un delete de datos siempre que no el campo
> > fichero no fuera 80 y 78.
> >
> > A simple vista podría hacer esto:
> >
> > delete from ficheros_recursos_programas where fichero <> '80' and
> > fichero <> '78';
> >
> > Pero esto no soluciona el problema, pues el condicional no siempre es el
> > mismo. Quiero decir que en este caso es 80, 78, y en otros casos puede
> > ser 80, 78, 90, 91, etc. Espero haberme explicado bien
> >
> > He probado con esto, pero no funciona:
> >
> > delete from ficheros_recursos_programas where fichero <> ('80', '78');
> >
> > ¿Alguien sabría decirme como se puede hacer esto?.
> >
> > --
> > ----
> > Saludos
> >
> > Pablo
> >
> > ---------------------------(fin del mensaje)---------------------------
> > TIP 3: si publicas/lees desde Usenet, por favor envía "subscribe-nomail"
> > a majordomo(at)postgresql(dot)org para que tus mensajes puedan llegar
> > a los suscriptores de la lista
>
>
> ---------------------------(fin del mensaje)---------------------------
> TIP 3: si publicas/lees desde Usenet, por favor envía "subscribe-nomail"
> a majordomo(at)postgresql(dot)org para que tus mensajes puedan llegar
> a los suscriptores de la lista
>
--
www: http://www.juancarlosmoral.es/blog
E-mail, Jabber Id: juanky(dot)moral(at)gmail(dot)com
Skype: juanky.moral