|
select文でデータを取得した時、あるフィールドの昇順とか降順にソートして表示したい場合があります。 この場合、SQLでは order by を使用します。指定する場所はwhere句の後になります。 select pn,order_no from parts_tbl order by order_no asc;上記のSQL文にはwhere句がないのでfrom句の後にorder byを指定します。指定方法は order by フィールド名 というように書きます。上のSQL文にはフィールド名の後に asc キーワードが指定されてますが、これは昇順にソートしたい場合に指定します。但し、ascを省略した場合、デフォルトで昇順にソートされますのでascは指定してもしなくても同じになります。 逆に、降順にソートしたい場合は order by フィールド名 desc というように指定しなくてはいけません。 具体的に、下図のような表があるとします。 ![]() これに対して上のSQL文を実行してorder_noの昇順にソートしなおした気かkが下図のようになります。 ![]() order byは一つの列だけでなく、複数の列を指定することも出来ます。例えば order by フィールド1,フィールド2 と言った感じでカンマ区切りで複数のフィールドを指定できます。 この時のソートはまず、フィールド1で昇順にソートします。その後にフィールド2で昇順にソートします。 以下の例を見てください。 ![]() このような表をまずフィールド1でソートします。下図がその結果です。 ![]() 次にこの結果に対してフィールド2でソートします。下図がその結果です。 ![]() order byで複数列指定した場合はこのようにソートが行われていきます。 |