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

Chỉ có thể chỉ định một biểu thức trong danh sách chọn khi truy vấn con không được giới thiệu với EXISTS

Bạn không thể trả lại hai (hoặc nhiều) cột trong truy vấn con của mình để thực hiện so sánh trong WHERE A_ID IN (subquery) mệnh đề - cột nào cần phải so sánh A_ID đến? Truy vấn con của bạn chỉ phải trả về một cột cần thiết để so sánh với cột ở phía bên kia của IN . Vì vậy, truy vấn cần phải có dạng:

SELECT * From ThisTable WHERE ThisColumn IN (SELECT ThatColumn FROM ThatTable)

Bạn cũng muốn thêm tính năng sắp xếp để có thể chỉ chọn từ các hàng trên cùng, nhưng bạn không cần trả lại COUNT dưới dạng cột để thực hiện việc sắp xếp của mình; sắp xếp trong ORDER mệnh đề độc lập với các cột được trả về bởi truy vấn.

Hãy thử một cái gì đó như sau:

select count(distinct dNum) 
from myDB.dbo.AQ 
where A_ID in
    (SELECT DISTINCT TOP (0.1) PERCENT A_ID
    FROM myDB.dbo.AQ 
    WHERE M > 1 and B = 0
    GROUP BY A_ID 
    ORDER BY COUNT(DISTINCT dNum) DESC)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Chọn 10 bản ghi hàng đầu cho mỗi danh mục

  2. SQL Server Internals:Các toán tử có vấn đề Pt. II - Băm

  3. Các cách khác nhau để chèn dữ liệu vào Bảng SQL Server - Hướng dẫn SQL Server / TSQL Phần 100

  4. Tìm hiểu về cách sử dụng SQL Server Management Studio

  5. Tạo mã sql theo lập trình