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

SQL để kiểm tra tất cả các giá trị trong cột

Tùy chọn đơn giản nhất thường là một cái gì đó như thế này

SQL> ed
Wrote file afiedt.buf

  1  with x as (
  2    select 1 id, 1 val from dual union all
  3    select 1 id, 2 val from dual union all
  4    select 1 id, 3 val from dual union all
  5    select 2 id, 1 val from dual union all
  6    select 2 id, 2 val from dual union all
  7    select 3 id, 1 val from dual union all
  8    select 3 id, 2 val from dual union all
  9    select 3 id, 3 val from dual union all
 10    select 4 id, 1 val from dual
 11  )
 12  select id
 13    from x
 14   where val in (1,2,3)
 15   group by id
 16* having count(distinct val) = 3
SQL> /

        ID
----------
         1
         3

WHERE mệnh đề xác định các giá trị mà bạn quan tâm. HAVING mệnh đề cho bạn biết có bao nhiêu giá trị trong số đó cần tồn tại. Ví dụ:nếu bạn muốn tất cả các hàng có ít nhất 2 trong 3 giá trị, bạn sẽ thay đổi HAVING mệnh đề tìm kiếm COUNT trong tổng số 2.

Nếu một val cụ thể được đảm bảo xảy ra nhiều nhất một lần cho mỗi id , bạn có thể loại bỏ distinct trong HAVING mệnh đề.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle lấy lại 1 giờ ngày

  2. Xóa các hàng trùng lặp khỏi oracle

  3. Oracle:Tôi cần một phần bên ngoài tham gia. Nhìn vào hình ảnh

  4. Oracle XMLType lớn như thế nào khi được lưu trữ dưới dạng BINARY XML

  5. asp.net core Oracle.DataAccess System.BadImageFormatException:Không thể tải tệp hoặc lắp ráp Oracle.DataAccess