patternsqlMinor
psql: SELECT * ... except one column
Viewed 0 times
columnpsqloneselectexcept
Problem
I search for a simple way to select all columns except one in psql.
With
I would be happy with a tool that expands to
My question is just about the interactive usage of psql. It is not a duplicate of questions of people unhappy with the sql standard and who want to execute something like "select *-foo".
With
psql I mean the interactive command line.I would be happy with a tool that expands to
* to a list of quoted column names. Then I could remove the column to remove by hand.My question is just about the interactive usage of psql. It is not a duplicate of questions of people unhappy with the sql standard and who want to execute something like "select *-foo".
Solution
To get the list of columns in default order, without the bad column:
Or just
I asked the same question in 2007 on pgsql-general. It was Postgres 8.2 back then. Sweet memories ...
Related:
SELECT string_agg(quote_ident(attname), ', ' ORDER BY attnum)
FROM pg_attribute
WHERE attrelid = 'myschema.mytable'::regclass
AND NOT attisdropped -- no dropped (dead) columns
AND attnum > 0 -- no system columns
AND attname <> 'bad_column' -- case sensitive!Or just
WHERE attrelid = 'mytable'::regclass if you trust the search path to resolve to the right schema.quote_ident() adds double-quotes where necessary.I asked the same question in 2007 on pgsql-general. It was Postgres 8.2 back then. Sweet memories ...
Related:
- How to check if a table exists in a given schema
Code Snippets
SELECT string_agg(quote_ident(attname), ', ' ORDER BY attnum)
FROM pg_attribute
WHERE attrelid = 'myschema.mytable'::regclass
AND NOT attisdropped -- no dropped (dead) columns
AND attnum > 0 -- no system columns
AND attname <> 'bad_column' -- case sensitive!Context
StackExchange Database Administrators Q#114760, answer score: 5
Revisions (0)
No revisions yet.