Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle LISTAGG() за множество атрибути?

select K, listagg(case when chgv1 = 1 then v1 else null end,',') within group (order by v1) as v1lst, --Only consider cases in listagg when rows have changed
          listagg(case when chgv2 = 1 then v2 else null end,',') within group (order by v2) as v2lst  --Only consider cases in listagg when rows have changed
from (
 select k, v1, v2,
        row_number() over (partition by k,v1 order by v1 ) as chgv1, --Detect changes in v1. In this case it's 1.
        row_number() over (partition by k,v2 order by v1 ) as chgv2  --Detect changes in v1. In this case it's 1.
 from t)
group by k;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Изпълнение на естествена заявка с Hibernate 4.1

  2. Не може да се направи пакетно вмъкване в Oracle DB с помощта на MyBatis

  3. Кой е най-ефективният начин да проверите дали съществува запис в Oracle?

  4. 40 въпрос, който трябва да знаете за R12.2

  5. обединяване на множество маси