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

Làm cách nào để lấy giá trị giả cho thẻ trống XML trong bảng bằng Oracle?

left join ... on 1=1

select  a.test 

from                demotable b 

        left join   XMLTable
                    (
                        '//test' 
                        passing xmltype(b.xmlTagColumn) 
                        columns 
                            test varchar(10) path '.'
                    ) a 

        on         1=1
;        

Demo

create table demotable (id int,xmlTagColumn varchar2(100));

insert into demotable (id,xmlTagColumn) values (1,'<X><test>123</test></X>');
insert into demotable (id,xmlTagColumn) values (2,'<Y><test>456</test></Y>');
insert into demotable (id,xmlTagColumn) values (3,'<Z><prod>123</prod></Z>');
select  b.id
       ,a.test 

from                demotable b 

        left join   XMLTable
                    (
                        '//test' 
                        passing xmltype(b.xmlTagColumn) 
                        columns 
                            test varchar(10) path '.'
                    ) a 

        on         1=1
;        
+----+--------+
| ID | TEST   |
+----+--------+
| 1  | 123    |
+----+--------+
| 2  | 456    |
+----+--------+
| 3  | (null) |
+----+--------+



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-01821:lỗi không nhận dạng được định dạng ngày cho ngày ISO 8601 với giờ địa phương

  2. Excel VBA kết nối với Oracle DB từ xa bằng InstantClient

  3. Oracle PL / SQL - Các ngoại lệ NO_DATA_FOUND có ảnh hưởng xấu đến hiệu suất thủ tục được lưu trữ không?

  4. Oracle SQL:Cách trả về một số cột riêng biệt

  5. Cách bỏ Oracle LOB