Postgresql 查找表的最后5列

Postgresql 查找表的最后5列,postgresql,Postgresql,有没有办法找到表中最后5列的值? 假设我有一个20列的表,我想从最后5列中选择所有的值 任何帮助都将不胜感激。事先谢谢。似乎很简单,除非我误解了 Select col16, col17, col18, col19, col20 From yourtable 不要。这很愚蠢 列实际上不应该有任何顺序-它们应该只有名称。这只是在测试或坐在数据库控制台时的一种方便,SELECT*为您提供了所有功能 很少有情况下,SELECT*在实时系统中有意义。我想不出有什么地方你想要什么列恰好是表上的“最后一列”

有没有办法找到表中最后5列的值? 假设我有一个20列的表,我想从最后5列中选择所有的值


任何帮助都将不胜感激。事先谢谢。

似乎很简单,除非我误解了

Select col16, col17, col18, col19, col20
From yourtable
不要。这很愚蠢

列实际上不应该有任何顺序-它们应该只有名称。这只是在测试或坐在数据库控制台时的一种方便,
SELECT*
为您提供了所有功能

很少有情况下,
SELECT*
在实时系统中有意义。我想不出有什么地方你想要什么列恰好是表上的“最后一列”

如果您真的致力于这样做,那么您必须查询or。获取特定表上的列列表,然后构建SQL查询它们

然而,如果您无法控制此表,那么这是一项毫无意义的任务,因为您不知道这些信息的含义。如果您控制了表,那么您就知道有哪些列名,这是一种更好的方法。

我得到了答案

SELECT column_name
FROM information_schema.columns
WHERE table_name='your_table'
order by ordinal_position
从序号位置,我们可以得到所需的最后“n”列


感谢所有的答案。

我猜OP正在寻找某种动态行为——从任何表中返回最后5列。但无论如何,你的答案是正确的:)哎呀。。。问题是,即使该表添加了另外5列,我也需要最后5列。我不想硬编码我的列名。你的用例是什么,为什么你需要这么奇怪的东西?我从一个网站上收集了5列数据,每个月更新一次值。我想存储最近3次更新。假设我有一月、二月和三月的数据,并且在四月更新期间我想删除一月的数据,而db应该有二月、三月和四月的数据。所以我从数据库中选取最后5列,并检查站点中的数据,以确保是否有任何更新。有意义吗?不,那没有意义。你的模型有缺陷。您不应该将每个月的更新存储在一列中,而应该存储在一行中。您的表应该有一列用于更新的值,另一列用于更新的日期/时间戳,每列一行update@a_horse_with_no_name我每个月给我的专栏取不同的名字。你可能会说这不是正统的或违反法律的,但我的要求是这样的,我没有选择。那么你应该问谁提出了这个要求,他/她为什么需要这个。你所做的就是所谓的去规范化,这几乎总是一个非常糟糕的决定。我从一个网站上收集了5列数据,他们每个月都会更新值。我想存储最近3次更新。假设我有一月、二月和三月的数据,并且在四月更新期间我想删除一月的数据,而db应该有二月、三月和四月的数据。所以我从数据库中选取最后5列,并检查站点中的数据,以确保是否有任何更新。有道理?