SQLを使ってデータを扱うとき、表の形を「横持ち」や「縦持ち」に変換したい場面は多々あります。例えば、月ごとの売上を列ごとに並べたい、あるいはアンケート結果を1列にまとめたいなど。 こうした「表の回転」に便利なのが PIVOT と UNPI …

SQLを使ってデータを扱うとき、表の形を「横持ち」や「縦持ち」に変換したい場面は多々あります。例えば、月ごとの売上を列ごとに並べたい、あるいはアンケート結果を1列にまとめたいなど。 こうした「表の回転」に便利なのが PIVOT と UNPI …
SQLでデータに順位を付けたいとき、よく使われるのが RANK と DENSE_RANK です。どちらもウィンドウ関数として利用でき、同点がある場合にどう順位を振るかが異なります。 「売上ランキングを作りたい」「部門ごとのTOP3を出したい …
SQLの検索でよく使われる LIKE 句は便利ですが、複雑な条件指定には限界があります。そこで強力な武器となるのが 正規表現(REGEXP)。この記事では、基本的な使い方からよく使うパターン、さらに「SQLで利用できる正規表現の一覧」をまと …
Oracle PL/SQLを使って大量データを処理する際、1行ずつループして処理を行うとパフォーマンスが低下します。このようなケースで活躍するのが BULK COLLECT と FORALL です。 これらを活用することで、SQLとPL/S …
はじめに SQLを学んでいると「サブクエリ(副問い合わせ)」という言葉を耳にすることが多いでしょう。サブクエリは、SELECT文の中にさらにSELECT文をネスト(入れ子構造)して使う機能です。複雑な条件指定や集計処理をシンプルに書けるため …
Oracle SQLを学んでいると、「DECODE関数」と「CASE式」の使い分けで迷う方は多いのではないでしょうか。どちらも条件分岐を行うために利用できますが、機能や表現力には明確な違いがあります。 本記事では、DECODEとCASEの特 …
oracleの独自関数のCOALESCE(コアレス)関数の用途についてメモしておきます。 COALESCE関数とは COALESCE関数は引数のリストから最初のNULL以外の値を返却するOracle独自関数となります。 NVL2関数との違い …
oracleの独自関数としてNVL関数やNVL2関数があります。 知ってると結構便利な関数なので、この2つの関数の違いについて整理しておきます。 NVL関数とは NVL関数は第1引数がNULLなら第2引数の値(代替値)を返します。 もし第1 …
SQLで単語の先頭1文字目のみ小文字から大文字へ変更したい場合は、INITCAP関数を使用することで可能となります。引数に変換したい文字を指定すればOKです。単語の区切りはスペースかアルファベット以外の文字(ハイフン「-」、カンマ「,」、ア …
SQLで指定した日付項目(該当年月)の月末日を取得するには「LAST_DAY」関数を使用します。うるう年でも正確な月の最終日を取得出来ます。 DBMS毎の使用可否 SQL Serverでは「EOMONTH」関数で最終日付を取得出来ます。 日 …