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.