tbl_cities
我使用以下代码创建了它:
CREATE TABLE IF NOT EXISTS public.tbl_Cities
(City_ID SERIAL NOT NULL,
City_Name VARCHAR(100) NOT NULL,
City_State_Region VARCHAR(100),
ID_Country INT NOT NULL,
CONSTRAINT PK_City_ID PRIMARY KEY (City_ID));
现在我想查询这些列及其数据类型的完全相同的顺序,以确保列名是什么以及真正的列顺序是什么(无需回滚到语句CREATE TABLE
)。INSERT
在我即将编写和执行的语句的上下文中。
要了解此信息,我执行:
SELECT column_name, data_type FROM information_schema.columns
WHERE table_name = 'tbl_cities';
但是我得到的输出顺序与现实中存在的列不同。
我也尝试过对列进行排序,但我知道的唯一参数是
ORDER BY column_name
. 在这种情况下,它会导致列在现实中存在的正确顺序。
SELECT column_name, data_type FROM information_schema.columns
WHERE table_name = 'tbl_cities'
ORDER BY column_name;
我的问题是:实现列在表中的实际顺序的正确语法是什么,以防按字母顺序排列它们会返回不同的结果/顺序。
我发现了这个问题,但它涉及 SQL Server,我需要在 PostgreSQL v14.7 上执行此操作。
我不仅对不同的答案持开放态度information_schema.columns
,而且对其他任何类型的答案都持开放态度:
SELECT * FROM pg_catalog.pg_tables;