Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

kesalahan subquery dan terlalu banyak nilai menggunakan xmllagg

Kombinasi xmlagg dan xQuery, itu tidak sederhana.

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
     )

Dan untuk tujuan Anda seharusnya terlihat seperti ini

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);

jika Anda menguraikan kueri ini, Anda akan melihat cara kerjanya.

sintaks nilai-berbeda xquery

sintaks 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. HikariCP:Batas waktu level basis data apa yang harus dipertimbangkan untuk mengatur maxLifetime untuk Oracle 11g

  2. Oracle.Dataaccess ada di GAC. Dapatkah saya mengontrol versi yang saya gunakan?

  3. prosedur oracle menggunakan perintah Host()

  4. Java ResultSet.getString() untuk bidang Tanggal menampilkan 00:00:00.0

  5. Ubah angka warna negatif menjadi HEX atau RGB