問題:
テーブルのレコードを、指定された列に従ってアルファベット順または逆アルファベット順に表示する必要があります。
例:
私たちのデータベースにはcustomerという名前のテーブルがあります。 customerテーブルには、id、first_name、およびlast_name列のデータが含まれています。
| id | first_name | last_name |
|---|---|---|
| 1 | スーザン | トーマス |
| 2 | ジョン | マイケル |
| 3 | トム | ミューラー |
各顧客の情報を、名前の昇順で並べ替えて表示しましょう。
解決策:
SELECT id,
first_name,
last_name,
FROM customer
ORDER BY last_name ASC;
このクエリは、アルファベット順にソートされたレコードを返します:
| id | first_name | last_name |
|---|---|---|
| 2 | ジョン | マイケル |
| 3 | トム | ミューラー |
| 1 | スーザン | トーマス |
ディスカッション:
テーブルからレコードを選択したいが、それらを特定の列に従ってソートしたい場合は、ORDER BYを使用するだけです。 SELECTの最後にある句 声明。 SQLクエリの複雑さや長さは関係ありません— ORDER BY 常にコマンドの最後にある必要があります。
ORDER BYの後 キーワードで、レコードを並べ替える列に名前を付けます。クエリでは、顧客の名前で並べ替えます。
または
デフォルトでは、ORDER BY 追加の指定子なしで昇順でソートします(ASCを使用するのと同じです) キーワードを明示的に)。ご想像のとおり、ASC 「昇順」の略です。降順で並べ替える場合は、DESCを簡単に指定します 列名の後のキーワード。
以下のクエリは前のクエリと似ていますが、名前の降順で並べ替えられた顧客のリストを返します。
SELECT id,
first_name,
last_name,
FROM customer
ORDER BY last_name DESC;
| id | first_name | last_name |
|---|---|---|
| 1 | スーザン | トーマス |
| 3 | トム | ミューラー |
| 2 | ジョン | マイケル |