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

грешка в подзаявката и твърде много стойности, използващи xmllagg

Комбинацията от xmlagg и xQuery не е проста.

select xmlquery('distinct-values(//text())' passing x returning content).getclobVal(),data_type from (
    select   xmlelement(root, xmlagg(XMLELEMENT(e,table_name,','))) x ,data_type
     from user_tab_cols where data_type in ('VARCHAR2','NUMBER')     
     group by data_type
     )

И за вашата цел трябва да изглежда така

select 
    app, key_event,  
    xmlquery('distinct-values(//text())' passing xmldoc returning content).getclobVal()
from 
    (select  
         t2.app,  
         coalesce(max(case when language =  2 then description end), 
                  max(case when language = 12 then description end), 
                  max(case when language = 27 then description end), 
                  'NULL') key_event,
         XMLELEMENT(root, xmlagg(XMLELEMENT(e, description, ','))
    ) xmldoc
from 
    table2 t2 
left join 
    table1 t1 on t1.app = t2.app 
group by 
    trans, t2.app
order by trans);

ако разложите тази заявка, ще видите как работи.

xquery distinct-values ​​синтаксис

xmlquery синтаксис



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да промените текста на етикета на бутона и да добавите нова функционалност по време на изпълнение? Oracle Forms

  2. Приемливи ли са кръговите препратки в базата данни?

  3. Актуализацията на SQL ще повлияе ли на нейната подзаявка по време на актуализацията?

  4. Прехвърляне на низ към int и използване в клауза Where

  5. Разлика между IAM, IDCS и OCI в облака на Oracle