sql >> データベース >  >> RDS >> Oracle

Oracleを使用してテーブル内のXML空タグのダミー値を取得するにはどうすればよいですか?

    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
    ;        
    

    デモ

    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. データベーステーブル、複数の無関係なテーブルを参照する1つのテーブル

    2. Django設定は、2つのエンジンでデータベースを構成します

    3. WHERE句の列の順序は重要ですか?

    4. 1つのクエリで2つのテーブルにOracleINSERTを実行