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

Bỏ qua các giá trị dư thừa được tìm nạp từ cơ sở dữ liệu

Nếu đây chỉ là về việc xử lý (B, A) dưới dạng bản sao của (A, B) và bạn không đặc biệt quan tâm xem hàng được trả về có phải là (A, B) hay không hoặc (B, A) , bạn có thể làm điều gì đó như sau:

SELECT DISTINCT
  CASE WHEN BUG_ID > LINKED_BUG_ID THEN LINKED_BUG_ID ELSE BUG_ID AS BUG_ID,
  CASE WHEN BUG_ID > LINKED_BUG_ID THEN BUG_ID ELSE LINKED_BUG_ID AS LINKED_BUG_ID
FROM MY_BUG_LINKS;

Đó là, nếu BUG_ID có giá trị lớn hơn LINKED_BIG_ID , truy vấn hoán đổi hai ID, nếu không, các giá trị được trả về không thay đổi. Do đó, (A, B)(B, A) luôn tạo ra các hàng trùng lặp (cả hai sẽ là (A, B) hoặc (B, A) ) và DISTINCT đảm bảo không có kết quả cuối cù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. ORA-00910:độ dài được chỉ định quá dài đối với kiểu dữ liệu của nó

  2. Truy vấn Oracle làm nguồn trong SSIS xác định kiểu dữ liệu sai

  3. Oracle SQL:Sử dụng trình tự trong chèn với Câu lệnh Chọn

  4. ORA-29913:lỗi khi thực thi chú thích ODCIEXTTABLEOPEN

  5. Một tài liệu tham khảo tốt cho Oracle PL / SQL