我有一个Postgresql 9.4.1表,像这样...
--------+-----------+-----------+----------------
serial | username | userprod | prodprice
--------+-----------+-----------+----------------
1 | Zack | candy | 44$
2 | Tom | shoes | 54$
3 | Steve | pants | 23$
4 | Paul | hood | 65$
5 | John | cap | 23$
6 | Zack | tshirt | 56$
7 | Tom | pullover | 21$
8 | Steve | socks | 42$
9 | Paul | shorts | 23$
10 | John | masc | 21$
行按串行列排序,如何显示同一个表,但根据"用户名"列按字母降序对所有行重新排序?我希望 Postgres 在单独的桌子上实时自动执行此操作。我想我可以使用视图吗?我该怎么做?
当然,您可以使用VIEW
返回有序行。
CREATE VIEW v_tbl_username AS
TABLE tbl ORDER BY username;
另一个用于按serial
列排序的行:
CREATE VIEW v_tbl_serial AS
TABLE tbl ORDER BY serial;
阅读@a_horse的评论,解决您的基本误解。
除非该顺序被外部查询中的另一个ORDER BY
否决,否则该顺序保持不变。
视图适用于early binding
:仅包括创建时存在的列。 SELECT * FROM tbl
或TABLE tbl
解析为当前现有列的列表。如果以后更改了基础表,则不会自动级联到视图。