検索
連載

SQLでのデータの制限とソート間違いやすいポイントを追え! Bronze SQL基礎I(3)(2/2 ページ)

Oracleデータベースエンジニアとしての基礎力を証明するORACLE MASTER Bronzeの取得を目指すITエンジニアは多い。本連載で間違いやすいポイントを確認し、合格に近づこう!

Share
Tweet
LINE
Hatena
前のページへ |       

問い合わせによって取得される行のソート(ORDER BY句)

例題3

SALARY列を降順に並べ替えている、正しいSQL文を選択してください。

a.select last_name,salary from employees

  order by salary;

b.select last_name,salary from employees

  order by salary asc;

c.select last_name,salary from employees

  order by salary desc;

d.select last_name,salary sal from employees

  order by sal desc;

e.select last_name,salary sal from employees

  order by 2 desc;

f.select last_name,salary sal from employees

  order by 3 desc;

例題の範囲をおさらい

参考:「SQL問い合わせによる行の制限とソート

 問い合わせた行をソートして戻すには、SELECT文の最後でORDER BY句を使用します。

ORDER BY 行をソートすることの宣言(列名、列別名、列位置の指定が可)
ASC 行を昇順ソートする(デフォルト)
DESC 行を降順ソートする

正解

c、d、e

解説

選択肢a:ORDER BYは、デフォルトでは行を昇順にソートします。このSQL文にはオプションの降順指定がありませんので、昇順にソートされます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

選択肢b:オプションで「ASC」を指定しているため、昇順にソートされます。

選択肢c:オプションで「DESC」を指定しているため、降順にソートされます。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

選択肢d:ORDER BYには列の別名も指定可能です。ここではSALARY列の別名を「sal」に指定しています。それとは別にオプションで「DESC」を指定しているため、結果は降順にソートされます。

選択肢e:ORDER BYには列位置も指定可能です。selectで指定されている列はLAST_NAMEとSALARYであり、LAST_NAMEの列位置は1、SALARYの列位置は2となります。

選択肢f:同様に列位置を指定していますが、「3」に当たる列は存在しないためエラーとなります(「sal」は列別名であり、列ではありません)。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

 問題文では「計算結果が戻ってこない」SQL文を尋ねています。こちらはもともと正常なSQL文ではないため、正解とはなりません。

 よって、SALARY列を降順に並べ替えているSQL文はc、d、eです。

まとめ

 次の内容をチェックしましょう。

  • WHERE句で使用する比較演算子(BETWEEN、
  • ORDER BY句の指定、行をソートする方法

 今回の範囲も第1回「リレーショナルデータベースの基本とSQL*PLUS」と同じく、正確に覚えておけば、点数が取れる内容です。確実に点が取れるようにしておきましょう。

 今回の範囲は詳細な事柄が多く、あいまいにしてしまうことも多いと思います。しかし試験に合格するためには、細かい部分も確実に覚えておく必要があります。出題の可能性が高い範囲ですので、しっかり復習しておきましょう。

 次回は、単一関数を使用した出力のカスタマイズについて、間違いやすい点にポイントを絞って説明します。


Copyright © ITmedia, Inc. All Rights Reserved.

前のページへ |       
ページトップに戻る