SQL

Oracle SQL、PL/SQLに関する記事になります。

2018年12月まではOracle11gXEを使用して検証しています。

2019年1月からはOracle12cを使用して検証しています。

SQL

SQLでIF文は使えない

SQL文でIF文を使いたいと思う場合があると思います。PL/SQLであればIF文を使うことはできますが、ただのSQLではIF文は使えません。 SQLでIF文の様な分岐を表現したい場合はDECODE、またはCASEを使うの […]

SQL

SPOOLで不要な空行を出力させない

SPOOLで不要な空行を出力させない方法を紹介します。 また、データに改行コードが含まれていると不要な空行が出力されるという事象の解決方法も紹介します。 SPOOLで不要な空行を出力させないサンプルSQL テーブルから取 […]

SQL

UPDATE 処理速度検証

以前から気になっていた、UPDATE文の処理速度検証を行いました。 UPDATE文で内部ビューを使用した場合と、EXISTS句を使った場合で、どちらが速いか検証しました。 前提条件 下記の検証SQL1、検証SQL2を使っ […]

SQL

テストデータ自動生成(一括登録) PL/SQL

前回はテストデータを自動生成するPL/SQLサンプルを紹介しました。しかし、1件ずつINSERTを行う作りになっていたため、大量データを作るのに時間がかかります。 それを改善するために、今回はFORALLを使って、一括で […]

SQL

テストデータ自動生成 PL/SQL

SQLのパフォーマンス計測を行うために、テストデータを大量に作成したい場合はよくあると思いますが、ランダム関数を使用して大量にデータを作成するPL/SQLサンプルを紹介します。 テストデータ自動生成 サンプルPL/SQL […]

SQL

SELECT句の副問合せ 処理速度検証

どんなシステムでもトランザクションテーブルにコード値を持たせて、コード値の名称はマスタテーブルに持たせるという方式がスタンダードな方式になっていると思います。 その際にマスタテーブルをINNER JOINして名称を取得す […]

SQL

分析関数 ROW_NUMBER

分析関数でROW_NUMBERを使用するサンプルSQLを紹介します。 分析関数 ROW_NUMBER() サンプルSQL 前提条件 SELECT EMP_ID AS 従業員ID , DEPT_ID AS 部署ID , A […]

SQL

分析関数 RANK

分析関数でRANKを使用するサンプルSQLを紹介します。 分析関数 RANK 部署毎で年収のランキング表示を行う SELECT EMP_ID AS 従業員ID , DEPT_ID AS 部署ID , SALARY AS […]

SQL

分析関数 COUNT

分析関数でCOUNTを使用するサンプルSQLを紹介します。 分析関数 COUNT サンプルSQL 前提条件 SELECT EMP_ID AS 従業員ID , DEPT_ID AS 部署ID , NAME AS 名前 FR […]

SQL

分析関数 MIN

分析関数でMINを使用するサンプルSQLを紹介します。 分析関数 MIN サンプルSQL 前提条件 SELECT EMP_ID AS 従業員ID ,DEPT_ID AS 部署ID ,SALARY AS 年収 FROM T […]