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

PostgresのデータからのXML要素名

    動的タグ名でSQL/XML関数を使用することはできません。 formatを使用できます 機能。

    postgres=# SELECT * FROM foo;
    ┌──────┬──────┐
    │  nm  │ val  │
    ╞══════╪══════╡
    │ buy  │  100 │
    │ sell │ 1000 │
    │ buy  │  102 │
    │ sell │ 1033 │
    └──────┴──────┘
    (4 rows)
    
    postgres=# SELECT xmlelement(name "trades", xmlagg(x)) 
                  FROM (SELECT format('<%1$s>%2$s</%1$s>', 
                                       nm, 
                                       xmlagg(xmlelement(name value, val)))::xml x 
                            FROM foo group by nm) s;
    ┌─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
    │                                                    xmlelement                                                       │
    ╞═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╡
    │ <trades><sell><value>1000</value><value>1033</value></sell><buy><value>100</value><value>102</value></buy></trades> │
    └─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
    (1 row)
    



    1. OracleでのSQL稼働週

    2. Oracleで空のテーブルをエクスポートする方法

    3. データ生成とハードウェア品質

    4. CTEがカーソル/派生テーブル/サブクエリ/一時テーブルなどよりも優れているのはなぜですか?