Re: psql -tAc '...' Ergebnis dann in WHERE id in (...) verwenden

Lists: pgsql-de-allgemein
From: Thomas Guettler <hv(at)tbz-pariv(dot)de>
To: "pgsql-de-allgemein(at)postgresql(dot)org" <pgsql-de-allgemein(at)postgresql(dot)org>
Subject: psql -tAc '...' Ergebnis dann in WHERE id in (...) verwenden
Date: 2011-08-24 08:55:05
Message-ID: 4E54BC69.3030506@tbz-pariv.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: Postg사설 토토 사이트SQL :

Hallo,

mit psql -tAc 'SELECT spalte WHERE ...' schreibe ich in eine Datei:

Ergebnis: zeilen.txt
zeile1
zeile2
...

Später möchte ich dieses Ergebnis dann wiederverwenden:

SELECT * from ... WHERE foo in ('zeile1', 'zeile2', 'zeile3', ...)

Prinzipiell kann man relativ einfach mit sed|awk|python die Datei zeilen.txt
zu dem gewünschten SQL Statement ändern.

Aber vielleicht gibt es einen leichteren Weg.

Problem verstanden? Wie macht ihr das?

Kann man auch beim Ausgeben in die Datei das passende Quoting machen? Also ggf mit Hochkomma
bei Zeichenketten, bei Integer aber nicht.

Thomas

--
Thomas Guettler, http://www.thomas-guettler.de/
E-Mail: guettli (*) thomas-guettler + de


From: Philipp Lawitschka <office(at)lawitschka(dot)eu>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: psql -tAc '...' Ergebnis dann in WHERE id in (...) verwenden
Date: 2011-08-24 09:20:51
Message-ID: 4E54C273.80709@lawitschka.eu
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

Hi Thomas,

benötigst du die Daten unbedingt in der Datei? Falls nicht, würde ich
das mit einem Subquery machen:

SELECT * FROM table1 WHERE foo IN (SELECT bar FROM table2)

Grüße
Philipp

Am 24.08.2011 10:55, schrieb Thomas Guettler:
> Hallo,
>
> mit psql -tAc 'SELECT spalte WHERE ...' schreibe ich in eine Datei:
>
> Ergebnis: zeilen.txt
> zeile1
> zeile2
> ...
>
> Später möchte ich dieses Ergebnis dann wiederverwenden:
>
> SELECT * from ... WHERE foo in ('zeile1', 'zeile2', 'zeile3', ...)
>
> Prinzipiell kann man relativ einfach mit sed|awk|python die Datei zeilen.txt
> zu dem gewünschten SQL Statement ändern.
>
> Aber vielleicht gibt es einen leichteren Weg.
>
> Problem verstanden? Wie macht ihr das?
>
> Kann man auch beim Ausgeben in die Datei das passende Quoting machen? Also ggf mit Hochkomma
> bei Zeichenketten, bei Integer aber nicht.
>
> Thomas
>
>


From: Andreas Kretschmer <akretschmer(at)spamfence(dot)net>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: Re: psql -tAc '...' Ergebnis dann in WHERE id in (...) verwenden
Date: 2011-08-24 09:23:52
Message-ID: 20110824092352.GA17466@tux
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-de-allgemein

Thomas Guettler <hv(at)tbz-pariv(dot)de> wrote:

> Hallo,
>
> mit psql -tAc 'SELECT spalte WHERE ...' schreibe ich in eine Datei:
>
> Ergebnis: zeilen.txt
> zeile1
> zeile2
> ...
>
> Später möchte ich dieses Ergebnis dann wiederverwenden:
>
> SELECT * from ... WHERE foo in ('zeile1', 'zeile2', 'zeile3', ...)
>
> Prinzipiell kann man relativ einfach mit sed|awk|python die Datei zeilen.txt
> zu dem gewünschten SQL Statement ändern.
>
> Aber vielleicht gibt es einen leichteren Weg.
>
> Problem verstanden? Wie macht ihr das?

Vielleicht. Du willst also gleich das als String so haben, daß Du das
für die IN ( ... ) verwenden kannst.

kretschmer(at)tux:~$ psql -tAc 'SELECT val from foo' test
10
12
13
13
14
14
kretschmer(at)tux:~$ psql -tAc "SELECT string_agg(quote_literal(val),',') from foo" test
'10','12','13','13','14','14'

Sowas in der Art?

Andreas
--
Really, I'm not out to destroy Microsoft. That will just be a completely
unintentional side effect. (Linus Torvalds)
"If I was god, I would recompile penguin with --enable-fly." (unknown)
Kaufbach, Saxony, Germany, Europe. N 51.05082°, E 13.56889°