mk-toolブログ

エンジニアと家のことをごちゃごちゃと書いてます

【OracleDB】Bronze本第3章

問題2

デフォルトのDD-MON-RR形式で日付が格納されている際、これを絞る際には
以下の表記法が可能。

WHERE hire_date > '01-JAN-01'  //一般的
WHERE hire_date > '01-JANUARY-01' //MONに対して月をフルで入力しても同じ結果が得られる。
WHERE hire_date > '1-JAN-1' //前の0も省略可能らしい

問題8

OrderBy句による並び替え。2つの列を降順に並び替える際には

ORDER BY salary DESC, hire_date DESC;

と言ったように、2か所に対してDESCを付与する。もし、どちらかにDESCを付与しなかった場合には
デフォルト設定のASCが適用されてしまう。

問題9
ORDER BY句では列の別名を付与することが可能。その他SELECT文も使用できるが、
SELECT文の中に数式として入れ込む際には使うことができない。

問題10
null値は特に設定しない場合、null値はどんな値よりも大きい、という扱いを受ける。

問題11
問題10ではnullの値がどんな値よりも大きい値を受けてしまうが、nullの出力方法を制御することも可能。

ORDER BY salary NULLS FIRST; //nullが先頭に出てくる
ORDER BY salary NULLS LAST; //nullが末尾に出てくる
ORDER BY salary ASC NULLS LAST; //これも可能


問題12 問題13
トップ〇〇を出力する際に以下のように記述する。

FETCH FIRST 5 ROWS ONLY; //先頭5行を出力する
FETCH FIRST 5 ROWS WITH TIMES; //先頭5行と、タイ記録(?)も出力される。

ROWSをPERCENTにすることで上位5パーセントを得ることができる。

問題14
OFFSETを使用することで、スキップも可能。

OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY; //先頭5行を出力する