Postgresql ..根据"用户名"重新排序行列按字母顺序排列

时间:2016-04-30 18:29:13

标签: postgresql view sql-order-by rows descendant

我有一个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吗?我怎么能这样做?

1 个答案:

答案 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 tblTABLE tbl已解析为当前现有列的列表。如果稍后更改基础表,则不会自动级联到视图。