検索結果(SELECT)文の加工

DISTINCT

内容が重複している行を取り除いてくれる。

SELECT DISTINCT 列名
   FROM テーブル名

ORDER BY

指定した列の値を基準として、検索結果を並び替えて取得する。

SELECT 列名 FROM テーブル名
 ORDER BY 列名 並び順

並び順はASC 又はDESCを指定できる。(デフォルトはASC)

複数の列を基準にした並び替え

SELECT 列名 FROM テーブル名
 ORDER BY 列名 並び順, 列名 並び順, ...

最初に指定された列で並び替え、同じ値が複数行あった場合は次に指定された列で並び替える。

列番号を指定した並び替え

列番号(選択列リストにおける列の順番)で指定することもできる。

SELECT 入金額, 出金額
   FROM 家計簿
   ORDER BY 1 DESC, 2 DESC -- 1は入金額、2は出金額のことを意味する

注意事項として選択リストの順番を並び替えると、結果にも影響は及ぶので注意が必要。

OFFSET - FETCH

検索結果の全行から並び替えた結果の一部の行のみを取得する際に使用する。

注意: MySQL, MariaDB, SQLiteでは使用できない。

SELECT 列名... FROM テーブル名
 ORDER BY 列名...
OFFSET 先頭から除外する行列 ROWS
(FETCH NEXT 取得行数 ROWS ONLY)

-- 上から3つまでの値を取得したい場合
OFFSET 0 ROWS
 FETCH NEXT 3 ROWS ONLY

-- 三番目の値を取得したい場合
OFFSET 2 ROWS
 FETCH NEXT 1 ROWS ONLY