第3章 データの制限およびソート

■ORDER BY句
使用する列名をSELECT句に含めることは、必須ではない。
文字のソートは、大文字と小文字を区別する。
ソートのデフォルトでは、NULL値は、最大値として扱われる。
NULLS FIRSTオプションを使うと、NULL値を最小値としてソートする。
NULLS LASTオプションを使うと、NULL値を最大値としてソートする。

日付 DESC 新しい日順に並ぶ。日付降順
日付 ASC 古い日順に並ぶ。日付昇順

FETCH句

日付リテラルは、書式が区別される。デフォルト日付書式は、DD-MON-RRである。
WHERE句では、列別名は使えない。ORDER BY句は、列別名を利用できる。
文字リテラルの大文字と小文字は区別される。例)’scott’と’SCOTT’は同一ではない。
文字リテラルと日付リテラルは、一重引用符”で囲む必要がある。例)’SCOTT’や’30-AUG-14′

ESCAP

SELECT ID, HEISU FROM EMP
WHERE ID LIKE ‘%A_B%’ ESCAPE ‘\’

_アンダーバーは、ワイルドカード文字として扱われてしまうので、ESCAPEオプションを使って、文字リテラルにする必要がある。

WHERE LIKE ‘%A_B%’
上記は、AABなども検索してしまう。

比較演算子<>を使うと、NULL値は検索対象外となる。

■置換変数
& SQL文の実行時に置き換える値の入力が要求される。
指定した変数は、SQL文の実行後に破棄される。
&& SQL文の実行時に置き換える値の入力が要求される。
指定した変数は、SQL文の実行後も保持される(SQL * Plusを終了するまで)

SET VERIFY ON 置換後の値が表示される。
SET VERIFY OFF 置換後の値を表示させない。

■置換変数の消去について
SQL Devleloperをログアウトする
UNDEFINEコマンドで変数を解除する。 (UNDEFINE 置換変数名)
DEFINE NAME = 別の値
値を変更することで、置き換えが可能。

■SQL行制限
行制限は、ORDER BY句の後ろに指定する。
行制限は、ORDER BY句と必ず一緒に使わなければならないわけではない。
OFFSET句 行制限を開始する前にスキップする行数を指定する。 NULL指定の場合、行は戻されない。
FETCH句 戻される行数または、行の割合を指定する。

あわせて読みたい