【问题标题】:Postgresql.. reorder rows based on "username" column alphabetically descendatPostgresql ..根据“用户名”列按字母顺序重新排序行
【发布时间】:2016-04-30 18:29:13
【问题描述】:

我有一个 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 在单独的表上实时自动执行此操作。我想我可以使用视图?我该怎么做?

【问题讨论】:

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


【解决方案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 被解析为当前存在的列的列表。如果稍后更改基础表,则不会自动级联到视图。

【讨论】:

  • 感谢 erwin,我知道我可以使用 SELECT * FROM tbl_ ORDER BY ircusername ASC, stmtserial ASC; 我只是不知道如何将其创建为 VIEW
猜你喜欢
  • 2013-03-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-25
  • 1970-01-01
  • 1970-01-01
  • 2013-11-30
相关资源
最近更新 更多