0

このような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にリアルタイムで自動的に実行してもらいたいです。ビューを使用できると思いますか?どうやってやるの?

4

1 に答える 1

1

もちろん、 a を使用し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順序は、外側のクエリで別のものによって覆されない限り保持されます。

Views work with early binding: 作成時に存在する列のみが含まれます。SELECT * FROM tblまたはTABLE tbl現在存在する列のリストに解決されます。基になるテーブルが後で変更された場合、それは自動的にビューにカスケードされません。

于 2016-05-01T01:34:48.300 に答える