我想使用列的索引(数字)执行选择.我试过了:
select 1 from "user" select '1' from "user"
但他们不按我的意愿行事.
你不能在postgres中这样做.选择文字(例如1或’1′)只会返回其值.允许这样的索引的唯一地方是order by子句,即使在那里,它们也与表中列的顺序无关,而是在选择列表中:
SELECT col1,col2,col3 FROM my_table ORDER BY 1
编辑:
一个警告是使用< some index>的顺序.与select *结合使用,可能看起来好像索引与表中列的顺序有关.但是,首先将*展开为包含所有列,然后才应用order by子句.所以最终,它确实引用了选择列表而不是表的实际结构.
EDIT2:
正如@klin所提到的,postgres的group by子句也允许索引:
SELECT col1,COUNT(*) FROM my_table GROUP BY 1