目次へ

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

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp