我有一个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吗?我怎么能这样做?
答案 0 :(得分:1)
当然,您可以使用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's comment解决您的基本误解。
除非被外部查询中的另一个ORDER BY
否决,否则该命令会保留。
视图使用early binding
:仅包含创建时出现的列。 SELECT * FROM tbl
或TABLE tbl
已解析为当前现有列的列表。如果稍后更改基础表,则不会自动级联到视图。