- 昇順は大きい順だったかな?
- 新しい日付から並べるのは、昇順と降順のどちら?
- ASCとDESCの違いが分からない
と迷ってしまうこともありますよね。
結論からいうと、次のように覚えておけば大丈夫です。
- 昇順:小さいものから大きいものへ並べる
- 降順:大きいものから小さいものへ並べる
日付の場合は、古い日付から新しい日付へ並べるのが昇順、新しい日付から古い日付へ並べるのが降順です。
SQLでは、昇順を「ASC」、降順を「DESC」で指定します。
この記事では、昇順と降順の違いや覚え方、数字・日付・文字の並び方、SQLでのASC・DESCの使い方まで、初心者にも分かりやすく解説します。
昇順と降順の違いを早見表で確認
まずは、昇順と降順の違いを表で確認してみましょう。
| データの種類 | 昇順 | 降順 |
|---|---|---|
| 数字 | 1→2→3 | 3→2→1 |
| 日付 | 古い→新しい | 新しい→古い |
| 価格 | 安い→高い | 高い→安い |
| 年齢の数値 | 若い→年齢が高い | 年齢が高い→若い |
| 英字 | A→B→C | Z→Y→X |
| SQLでの指定 | ASC | DESC |
迷ったときは、一覧を上から下へ見て、値が増えているか、減っているかを確認してみてください。
- 上から下へ値が増える:昇順
- 上から下へ値が減る:降順
この2つを基準にすると、数字だけでなく、日付や価格についても判断しやすくなります。
昇順とは?小さいものから大きいものへ並べる方法
昇順とは、数字や値を小さいものから大きいものへ並べる方法です。
「順番に上がっていく」と考えると、イメージしやすいでしょう。
数字の昇順は小さい順
数字の昇順は、次のような並び方です。
1、2、3、4、5
小さい数字から始まり、少しずつ数字が大きくなっています。
例えば、次のような並べ方が数字の昇順です。
- 点数が低い順
- 年齢が若い順
- 金額が安い順
- 個数が少ない順
- 距離が短い順
通販サイトなどで見かける「価格が安い順」も、価格を昇順に並べたものです。
日付の昇順は古い順
日付の昇順は、古い日付から新しい日付へ並べる方法です。
4月1日→4月2日→4月3日
例えば、ブログの記事を公開日の古いものから順番に表示する場合は、日付の昇順になります。
- 古い記事から新しい記事へ:昇順
- 過去の予定から未来の予定へ:昇順
- 入社日の古い人から新しい人へ:昇順
日付は数字よりも迷いやすいため、昇順=古い順と覚えておくと分かりやすいでしょう。
文字の昇順はAからZ
英字の昇順は、一般的にAからZへ向かう並び方です。
A→B→C→D
反対に、ZからAへ向かう並び方が降順です。
日本語については、単純に「あいうえお順」と考えるだけでは、実際の並び方と一致しない場合があります。
例えば、日本語環境のExcelでは、通常、日本語の文字はセルに設定されている「ふりがな」を基準に並べ替えられます。
また、SQLでの文字列の並び順は、データベースに設定されている照合順序によって変わる場合があります。
初心者のうちは、次のように覚えておけば十分です。
- AからZ:昇順
- ZからA:降順
- 日本語の細かな並び方:ソフトや設定によって異なる
降順とは?大きいものから小さいものへ並べる方法
降順とは、数字や値を大きいものから小さいものへ並べる方法です。
「順番に下がっていく」と考えると、イメージしやすくなります。
数字の降順は大きい順
数字の降順は、次のような並び方です。
5、4、3、2、1
大きな数字から始まり、少しずつ数字が小さくなっています。
例えば、次のような並べ方が降順です。
- 点数が高い順
- 売上が多い順
- 価格が高い順
- 年齢が高い順
- 閲覧回数が多い順
売上やアクセス数など、大きな数値を持つものから表示したい場合は降順を使います。
日付の降順は新しい順
日付の降順は、新しい日付から古い日付へ並べる方法です。
4月3日→4月2日→4月1日
ブログの新着記事や最新ニュースなど、新しい情報を先に表示したいときは、日付を降順に並べます。
- 新しい記事から古い記事へ:降順
- 最新のメールから過去のメールへ:降順
- 新しい登録者から古い登録者へ:降順
日付の場合は、降順=新しい順と覚えましょう。
文字の降順はZからA
英字の降順は、ZからAへ向かう並び方です。
Z→Y→X→W
Excelの並べ替えメニューでは、文字の降順が「ZからA」、数値の降順が「大きい順」、日付の降順が「新しい順」として表示されます。
昇順と降順を間違えない覚え方
昇順と降順を何度確認しても、しばらくすると分からなくなってしまうことがあります。
ここでは、迷いにくい覚え方を紹介します。
「小→大」「大→小」で覚える
最もシンプルな覚え方は、次の組み合わせです。
昇順=小→大
降順=大→小
日付の場合は、次のように置き換えます。
昇順=古い→新しい
降順=新しい→古い
漢字だけで考えるよりも、「小から大」「大から小」とセットで覚えた方が、実際に並べ替えるときに判断しやすくなります。
階段を昇り降りするイメージで覚える
階段の階数を思い浮かべる方法もあります。
昇順:1階→2階→3階
降順:3階→2階→1階
階段を昇ると階数が大きくなり、階段を降りると階数が小さくなります。
- 数字が大きくなっていく:昇順
- 数字が小さくなっていく:降順
このように結び付けると覚えやすいでしょう。
一覧を上から下へ見て判断する
昇順と降順は、画面上の位置ではなく、一覧を上から下へ読んだときの値の変化で判断します。
例えば、一覧の一番上に「1」があり、その下に「2」「3」と続いている場合は昇順です。
1
2
3
反対に、一番上に「3」があり、その下に「2」「1」と続いている場合は降順です。
3
2
1
「昇順だから大きい数字が上に来る」と考えると混乱しやすいため、上から下へ数字が増えるか、減るかを確認してみてください。
新着順・安い順は昇順と降順のどちら?
身近な表示方法を、昇順と降順に当てはめてみましょう。
| 表示方法 | 並び順 |
|---|---|
| 新着順 | 日付の降順 |
| 古い順 | 日付の昇順 |
| 価格が安い順 | 価格の昇順 |
| 価格が高い順 | 価格の降順 |
| 年齢が若い順 | 年齢の数値の昇順 |
| 年齢が高い順 | 年齢の数値の降順 |
| 得点が高い順 | 得点の降順 |
| 売上が多い順 | 売上の降順 |
特に迷いやすいのが、新着順です。
新しい日付から古い日付へ並べるため、新着順は日付の降順になります。
なお、年齢ではなく生年月日を基準に並べる場合は、考え方が逆になることがあります。
例えば、生年月日を古い順に並べると、年齢が高い人から表示されます。「年齢」と「生年月日」のどちらを並べ替えているのかを確認することが大切です。
ランキング1位から並べる場合は?
ランキングは、何の数字を基準にするかによって考え方が変わります。
順位の数字を並べる場合は、次のようになります。
1位→2位→3位
この場合は、順位の数値が小さいものから大きいものへ並んでいるため、昇順です。
一方、得点によって順位を決める場合は、次のようになります。
100点→90点→80点
高い得点から並べるため、得点では降順です。
- 順位:1、2、3なので昇順
- 得点:高いものから並べるので降順
「順位」と「順位を決める数値」を分けて考えるのがポイントです。
なお、「おすすめ順」や「人気順」は、サービス独自の評価方法で決められていることがあります。そのため、単純な昇順や降順だけで決まっているとは限りません。
ASCとDESCは何の略?
SQLでは、昇順と降順を指定するときに「ASC」と「DESC」を使います。
ASCはascendingを表し、意味は昇順
ASCは、英語の「ascending」を表す指定です。
SQLでは、小さい値から大きい値へ並べる昇順に使います。
ASC=昇順=小→大
ASCは「A」から始まるため、「A、B、C」と並ぶアルファベットの昇順を思い浮かべると覚えやすいでしょう。
DESCはdescendingを表し、意味は降順
DESCは、英語の「descending」を表す指定です。
SQLでは、大きい値から小さい値へ並べる降順に使います。
DESC=降順=大→小
「下がっていく」「下降する」というイメージで覚えると分かりやすくなります。
SQLで昇順・降順に並べ替える方法
SQLで取得したデータを並べ替えるときは、基本的に「ORDER BY」を使います。
昇順に並べる基本の書き方は次のとおりです。
SELECT 列名
FROM テーブル名
ORDER BY 並べ替える列名 ASC;
降順にしたい場合は、ASCをDESCに変更します。
SELECT 列名
FROM テーブル名
ORDER BY 並べ替える列名 DESC;
ASCで価格を安い順に並べる
商品を価格の安い順に並べる場合は、次のように書きます。
SELECT *
FROM products
ORDER BY price ASC;
実行結果のイメージは次のとおりです。
商品A 1,000円
商品B 2,000円
商品C 3,000円
価格が小さいものから大きいものへ並んでいるため、昇順です。
DESCで新しい記事から並べる
ブログ記事を投稿日が新しいものから並べる場合は、DESCを使います。
SELECT *
FROM articles
ORDER BY published_at DESC;
投稿日が新しいものから古いものへ並ぶため、日付の降順になります。
ブログの記事一覧やニュース一覧など、新着情報を上に表示したいときに使える並べ方です。
ASCを省略するとどうなる?
SQL Server、PostgreSQL、MySQLでは、ORDER BYでASCとDESCのどちらも指定しなかった場合、標準では昇順として扱われます。
そのため、次の2つは同じ並び方になります。
SELECT *
FROM products
ORDER BY price;
SELECT *
FROM products
ORDER BY price ASC;
ASCは省略できますが、コードを読む人が並び順をすぐに理解できるよう、あえて明記しても問題ありません。
ただし、ASCを省略することと、ORDER BYそのものを省略することは別です。
ORDER BYを書かなければ、自動的に昇順になるわけではありません。
複数の項目で並べ替える
SQLでは、複数の項目を使って並べ替えることもできます。
SELECT *
FROM products
ORDER BY category ASC, price DESC;
このSQLでは、次の順番で並べ替えます。
- 商品カテゴリーを昇順に並べる
- 同じカテゴリー内では価格を高い順に並べる
複数の項目を指定した場合は、左側に書いた項目が優先されます。
前の項目が同じ値だったときに、次の項目が並べ替えの条件として使われます。ASCとDESCは、それぞれの項目に個別に指定できます。
同じ値があるときの並び順を指定する
例えば、同じ得点の人が複数いる場合を考えてみましょう。
SELECT *
FROM users
ORDER BY score DESC;
この書き方では、得点の高い順には並びますが、同点の人同士の順番までは決めていません。
同点の場合はIDの小さい順にしたいときは、次のように書きます。
SELECT *
FROM users
ORDER BY score DESC, id ASC;
この場合は、次の順番になります。
- まず得点の高い順
- 同点ならIDの小さい順
IDが主キーなどの重複しない値であれば、同点の人を含めて順番を一意に決められます。
反対に、ORDER BYに指定したすべての値が同じ行同士は、その行同士の順番が決まらないことがあります。
決まった順番が必要な場合は、最後に重複しない列を追加しましょう。
ORDER BYを書かない場合の注意点
次のSQLには、ORDER BYがありません。
SELECT *
FROM products;
この場合、データが必ずID順や登録順で表示されるとは限りません。
同じSQLを実行しても、データベースの処理方法やデータの状態によって、結果の並び方が変わる可能性があります。
いつも同じ順番で表示したい場合は、次のようにORDER BYを指定しましょう。
SELECT *
FROM products
ORDER BY id ASC;
ASCとDESCは大文字で書く必要がある?
この記事では、SQLの命令部分を見つけやすくするために、SELECTやORDER BY、ASC、DESCを大文字で書いています。
PostgreSQLやMySQLでは、SQLキーワードの大文字と小文字は区別されません。
そのため、次の2つは同じSQLキーワードとして解釈されます。
ORDER BY price ASC;
order by price asc;
ただし、SQLキーワードを大文字、テーブル名や列名を小文字にすると、コードを見分けやすくなります。
なお、テーブル名などの大文字・小文字の扱いは、データベースや利用環境によって異なる場合があります。SQLキーワードの大文字・小文字とは分けて考えましょう。
Excelでの昇順・降順の見分け方
Excelでは、データの種類によって並べ替えメニューの表示が変わります。
| Excelの表示 | 意味 |
|---|---|
| AからZ | 文字の昇順 |
| ZからA | 文字の降順 |
| 小さい順 | 数値の昇順 |
| 大きい順 | 数値の降順 |
| 古い順 | 日付の昇順 |
| 新しい順 | 日付の降順 |
例えば、金額を「小さい順」に並べると、安い金額から高い金額へ並びます。
日付を「新しい順」に並べると、最新の日付から過去の日付へ並ぶため、日付の降順です。
Excelで日付が正しく並ばないときは?
日付を並べ替えたのに、古い順や新しい順にならないことがあります。
この場合は、セルに入力されている日付が、Excel上で「日付」ではなく「文字列」として保存されている可能性があります。
並べ替えがうまくいかないときは、次の点を確認してみてください。
- 日付が文字列として入力されていないか
- 同じ列に日付と文字列が混ざっていないか
- 数字が数値ではなく文字列になっていないか
- 日本語のふりがなが正しく設定されているか
昇順と降順についてよくある質問
日付の新しい順は昇順ですか?
いいえ、日付の新しい順は降順です。
4月3日→4月2日→4月1日
新しい日付から古い日付へ向かっているため、日付の値が下がっていく並び方になります。
反対に、古い日付から新しい日付へ並べるのが昇順です。
価格が安い順は昇順ですか?
価格が安い順は昇順です。
1,000円→2,000円→3,000円
金額が小さいものから大きいものへ進んでいるため、昇順になります。
価格が高い順は降順です。
新着順は昇順ですか?
新着順は、日付の降順です。
新しい記事の日付から古い記事の日付へ並ぶためです。
4月3日の記事→4月2日の記事→4月1日の記事
古い記事から順番に表示する場合は、日付の昇順になります。
ASCを指定しない場合はどうなりますか?
SQL Server、PostgreSQL、MySQLでは、ORDER BYに並び順を書かなかった場合、標準ではASCの昇順として扱われます。
ORDER BY price;
上記は、次の書き方と同じ並び方です。
ORDER BY price ASC;
ただし、ORDER BY自体を書かなかった場合は、表示順が保証されません。
文字列が思った順番に並ばないのはなぜですか?
文字列の並び順は、使用しているソフトやデータベースの設定によって変わる場合があります。
特に、次のような文字が含まれていると、予想していた順番にならないことがあります。
- 大文字と小文字
- ひらがなとカタカナ
- 漢字
- 数字を含む文字列
- 記号
- 全角文字と半角文字
Excelでは日本語のふりがな、SQLでは照合順序などが並び方に影響します。
まずは、「文字列の細かな並び方は、使用する環境や設定によって異なることがある」と覚えておきましょう。
昇順と降順の違いまとめ
昇順と降順は、数字や日付、文字などを並べ替えるときに使う言葉です。
最後に、重要なポイントをまとめます。
- 昇順は、小さいものから大きいものへ並べる
- 降順は、大きいものから小さいものへ並べる
- 日付の昇順は、古い日付から新しい日付へ並べる
- 日付の降順は、新しい日付から古い日付へ並べる
- 価格が安い順は昇順
- 新着順は日付の降順
- SQLでは昇順をASC、降順をDESCで指定する
- ASCを省略した場合は昇順になる
- ORDER BYそのものを省略すると、表示順は保証されない
- 文字列の細かな並び方は、ソフトや設定によって異なる
迷ったときは、次の組み合わせを思い出してみてください。
昇順=小→大・古い→新しい・ASC
降順=大→小・新しい→古い・DESC
数字だけでなく、日付や価格についても、「小さいものから大きいものへ進んでいるか」を考えると、昇順と降順を判断しやすくなります。
