Wie liste ich alle Tabellenspalten in sortierter Reihenfolge auf?


7

Ich weiß, dass \d table_namealle Spalten für diese Tabelle aufgelistet sind, aber gibt es eine Möglichkeit, sie in alphabetischer Reihenfolge aufzulisten?

Antworten:


21

Verwenden Sie im Allgemeinen Folgendes information_schema:

SELECT column_name
FROM information_schema.columns 
WHERE table_schema = 'public' 
AND table_name = 'blah' 
ORDER BY column_name ASC;

Funktioniert perfekt. Gute Antwort!
— Oxfist

Wenn Sie feststellen, dass Sie sie tatsächlich in der Reihenfolge haben möchten, in der sie in der Tabelle ORDER BY ordinal_positionangezeigt werden, sind Sie ziemlich nah dran (es ist die Reihenfolge, in der sie sich bei der Tabellenerstellung befanden).
— Noumenon

0

Dies funktioniert auch:

SELECT col_attr.attname as "ColumnName" 
FROM pg_catalog.pg_attribute col_attr 
WHERE col_attr.attnum > 0 
AND NOT col_attr.attisdropped 
AND col_attr.attrelid = 
(SELECT cls.oid 
FROM pg_catalog.pg_class cls 
LEFT JOIN pg_catalog.pg_namespace ns 
ON ns.oid = cls.relnamespace 
WHERE cls.relname = 'MyTable') 
ORDER BY "ColumnName" ASC

Könnten Sie diese Frage erklären?, Scheint mir ein wenig verwirrend.
— Oxfist

@Oxfist finden Sie die Beschreibung dieser Tabellen auf Spaltenebene
— dezso

Wird besorgt. Vielen Dank. Die vorherige Antwort war jedoch klarer.
— Oxfist
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.