Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Oracle Query:Jak porównać dwie kolumny w różnych tabelach o wartościach oddzielonych przecinkami?

Możesz to osiągnąć za pomocą TRANSLATE i TRIM działają w następujący sposób.

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>

To zapytanie uwzględnia, że ​​Twój prod_name nie ma # znak w dowolnej wartości.

Pozdrawiam!!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Co jest nie tak z moją instrukcją aktualizacji z dołączeniem w Oracle?

  2. Jak mogę uzyskać nowy identyfikator obiektu wygenerowany przez sekwencję DB?

  3. PHP, Oracle i ODBC:Jak sprawdzić, czy zestaw wyników jest pusty?

  4. Jak używać GROUP BY na kolumnie CLOB z Oracle?

  5. Jak używać typu BOOLEAN w instrukcji SELECT