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

Oracle Query:カンマ区切りの値を持つ異なるテーブルの2つの列を比較する方法

    これは、TRANSLATEを使用して実現できます。 およびTRIM 次のように機能します。

    SQL> with t1 as
      2  (select 1 as product_id, 'O,G,E,H,R' as prod_name from dual union all
      3  select 2, 'P,D,H,P,N' from dual union all
      4  select 3, 'C,D,A,D,P' from dual union all
      5  select 4, 'E,D,A,D,P' from dual),
      6  t2 as
      7  (select 5 as product_id, 'R,O,G,E,H' as prod_name from dual union all
      8  select 6 as product_id, 'P,D,H,N,P' as prod_name from dual union all
      9  select 7 as product_id, 'C,D,A,D' as prod_name from dual union all
     10  select 8 as product_id, 'C,D,A,P,D' as prod_name from dual)
     11  SELECT
     12      T1.PRODUCT_ID,
     13      T2.PRODUCT_ID
     14  FROM
     15      T1
     16      JOIN T2 ON TRIM('#' FROM TRANSLATE(T1.PROD_NAME, T2.PROD_NAME, '#')) IS NULL;
    
    PRODUCT_ID PRODUCT_ID
    ---------- ----------
             1          5
             2          6
             3          8
    
    SQL>
    

    このクエリは、prod_nameに#がないと見なします いずれかの値の文字。

    乾杯!!



    1. php&mysqlの最大数の目的

    2. PHP $stmt->num_rowsはプリペアドステートメントでは機能しません

    3. Laravel5でEloquentを使用してピボットテーブルを更新する方法

    4. セルをクリックした後にAjaxでデータを取得するためのjqueryreplacewith