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

いくつかのフィルター条件を持つOracleクエリ

    次の方法で(少し)圧縮できます:

    SELECT *                                       --- irrelevant to the question:
    FROM table1 JOIN table2                        --- use the explicit JOIN syntax
                 ON table1.id1 = table2.id2        --- not the implicit join with the
    ---table1,table2 where table1.id1 = table2.id2 --- WHERE syntax (removed)
    WHERE
    --- filters
      AND (table1.col2, table2.col2) IN
            (  ('value_11', 'value_21'),
               ('value_12', 'value_22'),
               ('value_13', 'value_23'),
               ...
               (value_1100, value_2200)
            ) 
    

    テーブルにこれらのフィルター条件がある場合は、次のようにすることもできます。

      AND (table1.col2, table2.col2) IN
            (  SELECT filter1, filter2
               FROM filter_table
            )
    



    1. postgres-where in(list)-列は存在しません

    2. MySQL DBでエンティティフレームワークを使用し、モデル設計者がストアドプロシージャパラメータを取得しない

    3. カテゴリごとに上位10件のレコードを選択

    4. SQL Serverを実行している2つのDockerコンテナ間にリンクサーバーを作成する(T-SQLの例)