|
SQL 5章 データの参照
5.6. 並べ替えと名前付け5.6.1. 出力の並べ替えテーブルは順序の無い集合なので、テーブルからデータを取り出すとき、データが順番に抽出されるとは限りません。SQL では ORDER BY 句を使って出力に順番を適用できるようにしています。列ごとに昇順 (ASC) 降順 (DESC) を指定することができます。デフォルトでは昇順となっています。 また、複数の列を並べ替えることができます。このときは、ORDER BY 句に続く列の並んでいる順に並び替えられます。すなわち、最初に指定された列が最も優先され、2 番目に指定された列が最初の重複値の順番を決定する、といった具合になります。 -- sample.16-1 -- /* 出力の並べ替え */ SELECT * FROM 顧客表 ORDER BY 顧客コード DESC ; /* 実行結果 */ 顧客コード 顧客名 ───── ─── 003 first house 002 onside 001 kurokiya ORDER BY と GROUP BY を利用すれば、グループを並べ替えることができます。例えば受注表で商品コードをグループ化して商品コードを降順に並べるときは次の通り SQL を記述します。 -- sample.16-2 --
/* 出力の並べ替え */
SELECT 商品コード FROM 受注表
GROUP BY 商品コード ORDER BY 商品コード DESC ;
/* 実行結果 */
商品コード
─────
103
102
101
また、列名の代わりに整数を使って列を指定することもできます。整数は最初の列が 1 で示され、3 番目の列が 3 で示されるといったように SELECT 句での列の位置を示します。 -- sample.16-3 --
/* 出力の並べ替え */
SELECT 顧客コード , 受注個数 FROM 受注表
ORDER BY 2 DESC ;
/* 実行結果 */
顧客コード 受注個数
───── ────
001 30
001 25
002 20
002 20
002 20
001 20
003 20
003 15
002 15
001 15
001 10
003 10
5.6.2. 出力列の名前付け出力列には、名前を付ける事ができます。MAX(列名) など集約関数を使って出力された結果などには列名が付かないので、AS 句を用いて名前を指定します。 例えば、受注表から受注個数の平均値を求め、平均という列名で表示させるには、次のように記述します。 -- sample.16-4 -- /* 出力列の名前付け */ SELECT AVG(受注個数) AS 平均 FROM 受注表 ; /* 実行結果 */ 平均 ──── 18.33333 |
![]()
![]()
|