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

OracleIN句でのLIKEの使用

    ここで役立つのは、LIKE ANYです。 PostgreSQLで利用可能な述語

    SELECT * 
    FROM tbl
    WHERE my_col LIKE ANY (ARRAY['%val1%', '%val2%', '%val3%', ...])
    

    残念ながら、その構文はOracleでは使用できません。 ORを使用して、定量化された比較述語を拡張できます。 ただし、:

    SELECT * 
    FROM tbl
    WHERE my_col LIKE '%val1%' OR my_col LIKE '%val2%' OR my_col LIKE '%val3%', ...
    

    または、EXISTSを使用して半結合を作成します 述語と補助配列データ構造(詳細については、この質問を参照してください):

    SELECT *
    FROM tbl t
    WHERE EXISTS (
      SELECT 1
      -- Alternatively, store those values in a temp table:
      FROM TABLE (sys.ora_mining_varchar2_nt('%val1%', '%val2%', '%val3%'/*, ...*/))
      WHERE t.my_col LIKE column_value
    )
    

    真の全文検索については、Oracle Textを参照してください:http://www.oracle.com/technetwork/database/enterprise-edition/index-098492.html



    1. Postgresの大文字と小文字の区別

    2. SQLの文字列で最初に出現する部分文字列を置き換えます

    3. WhoIsActiveランナー

    4. ORA-65139:XMLメタデータ・ファイルとデータ・ファイルの不一致