Thursday 21 November 2013

Set function in PLSQL?

The new SET function in 10g returns a distinct range of elements from a collection (i.e. DISTINCT). For simple collections such as the one we have used throughout this article, it's very straightforward, as the following example demonstrates.

SQL> SELECT nt
  2  ,      SET(nt) AS nt_set
  3  FROM (
  4        SELECT varchar2_ntt('A','B','C','C') AS nt
  5        FROM dual
  6       );

NT                                  NT_SET
----------------------------------- ------------------------------
VARCHAR2_NTT('A', 'B', 'C', 'C')    VARCHAR2_NTT('A', 'B', 'C')

1 row selected.

SQL> SELECT nt.column_value AS distinct_element
  2  FROM   TABLE(SET(varchar2_ntt('A','B','C','C'))) nt;

DISTINCT_ELEMENT
----------------
A
B
C

3 rows selected.

No comments:

Post a Comment