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

カンマ区切りの列で特定の値を照会することはできますか?

    LIKEを使用してできます。部分的な値と一致させたくないので、検索にコンマを含める必要があります。これは、テキストの最初または最後の値を検索するために追加のカンマを指定する必要があることも意味します:

    select 
      * 
    from
      YourTable 
    where 
      ',' || CommaSeparatedValueColumn || ',' LIKE '%,SearchValue,%'
    

    ただし、特に先頭のワイルドカードを使用したLIKEを使用するすべてのクエリと同様に、このクエリは遅くなります。

    そして、常にリスクがあります。値の前後にスペースがある場合、または値自体にコンマを含めることができる場合(csvファイルのように)、値を引用符で囲むと、このクエリは機能せず、さらにロジックを追加する必要があり、クエリの速度が低下します。さらに。

    より良い解決策は、これらのカテゴリの子テーブルを追加することです。または、カテゴリ用の個別のテーブルと、カテゴリをYourTableにクロスリンクするテーブルです。



    1. GATHER_PLAN_STATISTICSは、基本的な計画統計を生成しません

    2. Oracle PL/SQLで呼び出し元のプロシージャまたは関数の名前を取得します

    3. SQL ServerのWHERE句のアンパサンド(&)演算子

    4. Oracle®からのSalesforceの更新