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

Listaggオーバーフロー関数の実装(Oracle SQL)

    XMLの助けを少し借りれば、うまくいくかもしれません。例はHRスキーマに基づいています。

    SQL> select
      2    listagg(s.department_name, ',') within group (order by null) result
      3  from departments s, departments d;
    from departments s, departments d
         *
    ERROR at line 3:
    ORA-01489: result of string concatenation is too long
    
    
    SQL>
    SQL> select
      2  rtrim(xmlagg(xmlelement (e, s.department_name || ',')).extract
      3    ('//text()').getclobval(), ',') result
      4  from departments s, departments d;
    
    RESULT
    --------------------------------------------------------------------------------
    Administration,Administration,Administration,Administration,Administration,Admin
    
    SQL>
    


    1. レコメンデーションエンジンデータベースの設計?

    2. null || nullがnull値を返すのに、concat(null、null)がpostgresで空の文字列を返すのはなぜですか?

    3. 異なるフィールドを持つ複数のテーブルでのMySQL全文検索

    4. MySQL-行を削除する代わりに、行の値を削除します