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

クエリ用のOracleLISTAGG()

    まず、可能であれば、ほとんどの場合、1つのステートメントですべてを実行する方が効率的です。

    すべてを単一の文字列に返すため、2番目のクエリは機能しません。これはではありません INステートメントで必要なコンマ区切りのリスト。

    ただし、これを回避するためのちょっとしたコツがあります。 2つのSELECTステートメントの間の何かに文字列を使用していると仮定すると、 regexp_substr() 文字列を使いやすいものに変えるためです。

    このようなものが機能します;

    select city
      from vwpersonprimaryaddress
     where state in ( 
               select regexp_substr(v_province,'[^'',]+', 1, level) 
                 from dual
              connect by regexp_substr(v_province, '[^'',]+', 1, level) is not null
                      )
    

    変数v_province たとえば、'''AB'',''AZ'',''BC'''のように、2回引用するように変更する必要があります。 これが機能するために。

    これが実際の例 です。



    1. MySQLデータベースで最大のテーブルを見つける方法は?

    2. 新しい行が挿入されていないのにexecuteUpdateが1を返すのはなぜですか?

    3. RubyからMySQLストアドプロシージャを呼び出すことは可能ですか?

    4. ユーザーアカウント管理、役割、権限、認証PHPおよびMySQL-パート6