検索
連載

単一行関数を使用した出力のカスタマイズ間違いやすいポイントを追え! Bronze SQL基礎I(4)(1/2 ページ)

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

Share
Tweet
LINE
Hatena

 前回「SQLでのデータの制限とソート」では、WHERE句で使用できる比較演算子、ORDER BY句の利用方法を学習しました。

 今回は、以下の項目について確認します。

  • 単一行関数
  • 変換関数

単一行関数の種類と使用方法

例題1

次のデータと要件を確認してください。

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

次の文を実行したとき、戻される値として正しいものを選択してください。

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

a.10

b.6

c.3

d.4

例題の範囲をおさらい

参考:「SQLで使える関数の基礎知識

 LENGTHは、単一行関数の一種である文字関数の1つで、引数で指定した文字データの文字数を戻します。

(例)
LENGTH('ABCD')→4

正解

a

解説

 問題のSQL文を実行すると、以下のような結果が戻ります。

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

 この問題でポイントとなるのは、値が格納されている列のデータ型です。

 問題文に提示されているデータから分かるように、COL2はVARCHAR2型、COL3はCHAR型です。VARCHAR2型は可変長文字データであり、CHAR型は固定長文字データです。

 以下の結果を確認してください。

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

 このように、VARCHAR2型の場合は、全角半角に関係なく、入っている値の文字数を戻します。しかし、CHAR型は固定長であるため、設定された文字数を戻します。

 よって、正解はaの「10」です。

例題2

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

上記のSQL文を実行した結果として正しいものを1つ選択してください。

a.2008-07-01

b.2008-06-31

c.2008-06-30

d.エラーになる

例題の範囲をおさらい

参考:「SQLで使える関数の基礎知識

 ADD_MONTHSは、単一行関数の一種である日付関数の1つで、日付に月数を加算します。

 ADD_MONTHS('date', m)のように2つの引数を取り、dateにm月を加算します。mの値が負の場合は、m月を減算します。

正解

c

解説

 問題のSQL文を実行すると、以下のような結果が戻ります。

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

 この問題のポイントは、引数として指定された5月31日が、月の最後の日であることです。

 通常は、引数に指定された値に、そのまま加算または減算します。

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

 しかし、指定された日が月の最後の日の場合は、加算した結果である月の最後の日を戻します。

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

 よって、正解はcの「2008-06-30」です。

Copyright © ITmedia, Inc. All Rights Reserved.

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