ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
ORDER BY 句とは
ORDER BY は SELECT 文の結果セットの行を並び替えるための句です。明示的に指定しない限り、SQL の結果順序は不定として扱われるため、決まった順番で取り出したいときは必須になります。
基本構文
SELECT カラム1, カラム2, ...
FROM テーブル
[WHERE 条件]
ORDER BY ソートキー1 [ASC|DESC] [, ソートキー2 [ASC|DESC] ...];
例
1. 単一カラムでソート
-- 給料の昇順
SELECT empno, ename, sal
FROM emp
ORDER BY sal; -- ASC は省略可
-- 給料の降順
SELECT empno, ename, sal
FROM emp
ORDER BY sal DESC;
2. 複数カラムでソート
-- 部署番号の昇順 → 同じ部署内では給料の降順
SELECT empno, ename, deptno, sal
FROM emp
ORDER BY deptno ASC, sal DESC;
3. 列番号 / 別名でソート
-- 3 番目のカラム(sal)でソート
SELECT empno, ename, sal FROM emp
ORDER BY 3 DESC;
-- 別名でソート
SELECT ename, sal * 12 AS annual_sal
FROM emp
ORDER BY annual_sal DESC;
4. 式 / 関数でソート
-- 大文字小文字を無視した名前順
SELECT * FROM users
ORDER BY UPPER(name);
-- CASE 式でカスタム順序
SELECT * FROM orders
ORDER BY CASE status
WHEN 'urgent' THEN 1
WHEN 'normal' THEN 2
ELSE 3
END;
NULL の扱い
NULL を最初・最後どちらに並べるかは DB によって既定が異なります。
| DB | 既定(ASC) | 明示指定 |
|---|---|---|
| Oracle / PostgreSQL | NULL は最後 | NULLS FIRST / NULLS LAST |
| MySQL | NULL は最初 | 標準構文なし。IS NULL をソートキーに含める回避策 |
| SQL Server | NULL は最初 | 標準構文なし。CASE 式で代替 |
-- Oracle / PostgreSQL
SELECT * FROM emp ORDER BY commission DESC NULLS LAST;
-- MySQL で NULL を最後に
SELECT * FROM emp ORDER BY commission IS NULL, commission DESC;
LIMIT / OFFSET / FETCH との組み合わせ
ページング用途では ORDER BY + LIMIT/OFFSET または FETCH FIRST を組み合わせます。
-- MySQL / PostgreSQL
SELECT * FROM emp ORDER BY hiredate DESC LIMIT 10 OFFSET 20;
-- Oracle / SQL Server (標準 ANSI)
SELECT * FROM emp ORDER BY hiredate DESC
OFFSET 20 ROWS FETCH NEXT 10 ROWS ONLY;
パフォーマンス
- 大きなテーブルの ORDER BY は全件ソートを伴うため重い処理
- ソートキーにインデックスがあると、DB がソートをスキップしてインデックススキャンで結果を返せる
- 複合インデックスは並び順まで一致している必要がある(例:
(deptno ASC, sal DESC)) - 関数を使ったソート(
UPPER(col)など)はインデックスが効きにくい。関数インデックスまたは生成カラムで対処
注意点
- GROUP BY との順序:
WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMITの順で評価される - SELECT に含まれていないカラムでもソートキーに使える(ただし DISTINCT や UNION と併用すると制限あり)
UNIONなど集合演算では、ORDER BY は最後に 1 回だけ書く- 列番号指定は可読性が下がるためチームコーディング規約で禁止することが多い
関連記事
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページ
子ページはありません
同階層のページ
- GROUP BY 句
- HAVING句
- ORDER BY 句
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?