2016-04-30 15 views
0

descendat私はこのように、Postgresqlの9.4.1テーブルを持っている...Postgresqlの..「ユーザ名」欄に基づいて再注文列をアルファベット順に

--------+-----------+-----------+---------------- 
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に別のテーブルでリアルタイムに自動的に実行させたいと思います。私はビューを使用することができると思いますか?どうやってやるの?

+1

'ORDER BY'句について:http://www.w3schools.com/sql/sql_orderby.asp – krokodilko

+2

テーブル内の行は***ではありません。 'order by 'を使わないときに見た順序は純粋な一致です。注文したものを見るには、「注文する」を選択してください。それは保証された注文を得るための***唯一の***方法です。 http://www.postgresql.org/docs/current/static/sql-select.html#SQL-ORDERBY –

+0

ビューの作成について自動的に行うことができますか? – litu16

答えて

1

確かに、VIEWを使用すると、順序付けされた行を返すことができます。

CREATE VIEW v_tbl_username AS 
TABLE tbl ORDER BY username; 

そしてserial列でソートされたあなたの行の別の1:

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

関連する問題