Robert James wrote > On 1/13/13, Chris Angelico < > rosuav@ > > wrote: >> On Mon, Jan 14, 2013 at 3:37 PM, Robert James < > srobertjames@ > > >> wrote: >>> Thanks. But how do I do that where I have many literals? Something >>> like: >>> >>> INSERT INTO seltest (id, a, b) SELECT (1,2,3),(4,5,6),(7,8,9) WHERE b >>> IN (SELECT ...) >> >> You can use WITH clauses in crazy ways with PostgreSQL. I haven't >> actually tried it, but you should be able to put your VALUES behind a >> WITH, then SELECT from that WHERE blah blah, and INSERT that SELECT. >> >> As they say, knock yourself out! :) >> >> ChrisA > > > I don't quite follow - could you please elaborate? INSERT INTO table_abc (a, b, c) WITH values_to_insert (a, b, c) AS ( VALUES (1,2,3), (4,5,6), (7,8,9) ) SELECT a, b, c FROM values_to_insert WHERE a = 4 ; See: http://www.postgresql.org/docs/9.2/interactive/sql-values.html <http://www.postgresql.org/docs/9.2/interactive/sql-values.html> for more detail on "VALUES". Basically it provides a way to build an on-the-fly table and can be used wherever a normal table can be used (though usually it takes some aliasing to get meaningful names). David J. -- View this message in context: http://postgresql.1045698.n5.nabble.com/INSERT-WHERE-tp5740009p5740164.html Sent from the PostgreSQL - general mailing list archive at Nabble.com. -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general