Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

lỗi truy vấn con và quá nhiều giá trị sử dụng xmllagg

Sự kết hợp của xmlagg và xQuery, nó không đơn giản.

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
     )

Và đối với mục đích của bạn, nó sẽ giống như thế này

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

nếu bạn phân tách truy vấn này, bạn sẽ thấy nó hoạt động như thế nào.

cú pháp giá trị phân biệt xquery

cú pháp 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. Tách chuỗi phức tạp bằng Biểu thức chính quy

  2. Chúng ta có thể cập nhật các giá trị khóa chính của một bảng không?

  3. Cách tạo thủ tục lưu trữ PL / SQL mà không cần tham số trong cơ sở dữ liệu Oracle

  4. Oracle SQL Injection Block với DBMS_ASSERT

  5. ORACLE SQL Chạy TOTAL và tổng ngày bằng cách sử dụng hàm cửa sổ