PostgreSQL的。基于“用户名”栏重新排序行字母descendat
问题描述:
我有一个PostgreSQL 9.4.1表,像这样...PostgreSQL的。基于“用户名”栏重新排序行字母descendat
--------+-----------+-----------+----------------
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's comment解决您的基本误解。
该订单将保留,除非它被外部查询中的另一个ORDER BY
否决。
视图与early binding
一起使用:仅包含在创建时出现的列。 SELECT * FROM tbl
或TABLE tbl
已解析为当前现有列的列表。如果稍后更改了基础表,那么它不会自动级联到视图。
+0
谢谢erwin,我知道我可以使用'SELECT * FROM tbl_ ORDER BY ircusername ASC,stmtserial ASC;'我只是不知道如何创建它到VIEW – litu16
阅读关于'ORDER BY'子句:http://www.w3schools.com/sql/sql_orderby.asp – krokodilko
表中的行不是***“排序”。您在不使用'order by'时看到的任何订单纯属巧合。如果您想要查看它们,请在选择时使用'order by'。这是只有***才能获得有保证的订单。 http://www.postgresql.org/docs/current/static/sql-select.html#SQL-ORDERBY –
创建视图怎么办?可以自动完成? – litu16