Làm thế nào để liệt kê tất cả các cột trong bảng theo thứ tự sắp xếp?


7

Tôi biết rằng \d table_nameliệt kê tất cả các cột cho bảng đó, nhưng có cách nào để liệt kê chúng được sắp xếp theo thứ tự bảng chữ cái không?

Câu trả lời:


21

Nói chung, sử dụng information_schema:

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

Hoạt động hoàn hảo. Câu trả lời chính xác!
Oxfist

Nếu bạn nhận ra rằng bạn thực sự muốn chúng theo thứ tự chúng xuất hiện trong bảng, ORDER BY ordinal_positionhãy đưa bạn đến gần (đó là thứ tự chúng được tạo ra trong bảng).
Noumenon

0

Điều này cũng hoạt động:

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

Bạn có thể giải thích câu hỏi đó không?, Có vẻ hơi khó hiểu với tôi.
Oxfist

@Oxfist bạn có thể tìm thấy mô tả cấp độ cột của các bảng này tại postgresql.org/docs/9.2/static/catalogs.html
dezso

Sẽ làm. Cảm ơn bạn. Câu trả lời trước đó rõ ràng hơn.
Oxfist
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.