Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Truy vấn Oracle:Cách so sánh hai cột của bảng khác nhau có các giá trị được phân tách bằng dấu phẩy

Bạn có thể đạt được điều này bằng cách sử dụng TRANSLATETRIM hoạt động như sau.

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>

Truy vấn này cho rằng tên_sinh_viên của bạn không có # ký tự trong bất kỳ giá trị nào.

Chúc mừng !!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao tôi không thể truyền oracle BLOB từ Java Blob gốc

  2. Trong Oracle, làm cách nào để xác minh kiểu đối tượng được sử dụng từ hệ thống phân cấp kiểu đối tượng?

  3. C # DateTime thay đổi sang định dạng khác

  4. Bật TLS trong Ứng dụng Oracle R12.2

  5. Kế hoạch thực thi Oracle