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

Oracle置換機能

    既存のテーブルを更新せず、データのみを選択したい場合は、このやや面倒なクエリを使用できます。

    http://sqlfiddle.com/#!4/22909/4

    WITH changed_table AS
         (SELECT val1, EXTRACTVALUE (x.COLUMN_VALUE, 'e') val2new
            FROM (SELECT val1, val2 xml_str
                    FROM table1),
                 TABLE (XMLSEQUENCE (XMLTYPE (   '<e><e>'
                                              || REPLACE (xml_str, ',', '</e><e>')
                                              || '</e></e>'
                                             ).EXTRACT ('e/e')
                                    )
                       ) x)
    SELECT ct.val1, listagg(table2.val2,',') within group (order by table2.val2) val2
      FROM changed_table ct, table2 table2
     WHERE ct.val2new = table2.val1
    group by ct.val1;
    

    XMLTYPEを使用して、コンマで区切られた数値を行に区切りました。次に、行を2番目のテーブルと結合して説明を取得し、最後にLISTAGG関数を使用してコンマ区切りの文字列を作成しました。このクエリがどれほど効率的かわからない。マーク・バニスターのコメントに同意します。



    1. このSQLINSERTステートメントが構文エラーを返すのはなぜですか?

    2. Pythonを使用してMySQLデータベースにNULLデータを挿入するにはどうすればよいですか?

    3. データベースとテーブルを作成するPDO

    4. Windowsは「http:/。127.0.0.1:%HTTPPORT%/ apex / f?p=4950」を見つけることができません。名前を正しく入力したことを確認してから、再試行してください