Engineer Blog開発者ブログ

2016.9.29

【SQL】[Oracle]列中の同じ内容を空白にする

manual sql

今回の紹介するSQLは、『列中の同じ内容を空白にする』やり方になります。
これを実装するにはLAG関数(分析関数)を利用します。 LAG関数は、グループ単位に検索したレコードの
n行前のデータを取得する関数になります。

イメージとしては、以下の様な一覧があるとします。

一覧

     
上記のような一覧情報があった場合、以下のように出力結果を編集する方法になります。
     

一覧-2

 

実行のサンプルSQLは以下のようになります。

 

■実行SQL

SELECT
   CASE
      WHEN 部署 = LAG(部署) OVER (order by 部署) THEN ''
      ELSE 部署
   END 部署
   , ユーザCD
   , ユーザ名
FROM
  TEST_TABLE

サンプルのように数行であれば問題ないですが、100や200行といったデータを出力する場合には
見やすくなってよいかと思います。

Contact
お問い合わせ

電話番号0120 - 889 - 236
受付時間:平日 9:00-18:00