LoginSignup
3
1

More than 5 years have passed since last update.

LISTAGG関数の新機能を試す(Oracle Database 19c)

Posted at

LISTAGG関数

行列の入れ替えを行う関数としてLISTAGGがあります。この関数は取得した行データを単一の文字列に連結します。以前、結果の文字列が桁あふれした場合の対応方法について、Oracle Database 12c の新機能 として書きました。

Oracle Database 19cの新機能

Oracle Database 19cでは、この関数にDISTINCT句を指定して、出力データに一意性を指定できるようになりました。省略時は従来通りすべてのデータを出力します。この動作を明示するために、ALL 句を指定することもできます。

Oracle Database 19c新機能ガイド

元データ

簡単なデータを用意します。Oracle Database 19cはまだオンプレミス版が提供されていないため、LiveSQL を使っています。data1テーブルのc2列を行列変換します。

全データ

DISTINCT句

DISTINCT句を使ってc2列の値を一意にまとめて出力しています。

DISTINCT

ALL句

DISTINCT句の替わりにALL句を指定するか省略すると従来通りの出力になります。
LISTAGG03.png

ソート順

WITHIN GROUP (ORDER BY)句と組み合わせることで出力順序を指定することもできます。これは従来と同じ動作です。

WITHIN GROUP (ORDER BY)

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1