Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle Query:Как да сравним две колони от различна таблица със стойности, разделени със запетая

Можете да постигнете това с помощта на 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. JDBC връзка към база данни на Oracle с помощта на TLS сертификат

  2. Статус на незабавен клиент на Oracle

  3. Колона за връщане на Oracle SQL, изчислена от съществуващи колони

  4. Как да добавите 10 секунди в current_timestamp SQL (Oracle)

  5. Какво означава следната грешка на Oracle:невалиден индекс на колона