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

Điều khoản Check in Where có điều kiện

Một số người sử dụng kỹ thuật này

... WHERE @itemid IS NULL OR tbl.itemid = @itemid

Mặc dù vậy, nó đảm bảo rằng bạn sẽ không bao giờ nhận được tìm kiếm chỉ mục trên cột itemid.

Một cách tiếp cận tốt hơn nếu bảng quá lớn là chia truy vấn thành 2 trường hợp riêng biệt

IF(@itemid IS NULL)
  SELECT foo FROM bar
ELSE
  SELECT foo FROM bar WHERE itemid = @itemid

Nếu số lượng kết hợp quá lớn, bạn có thể xem xét SQL động. Hãy chắc chắn rằng bạn hiểu SQL injection trước.

Tham khảo: Điều kiện tìm kiếm động trong T-SQL



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách trả lại tất cả các ràng buộc khóa ngoại không đáng tin cậy trong SQL Server (Ví dụ T-SQL)

  2. Công tắc bảng thay đổi hoạt động như thế nào trên máy chủ sql?

  3. Sử dụng Excel 2010 để đọc / ghi vào cơ sở dữ liệu SQL Server 2008 bằng các thủ tục được lưu trữ

  4. Tự động thả và tạo lại các chỉ mục hiện tại

  5. SQL Server 2016 - Giới thiệu về Cơ sở dữ liệu Stretch