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

SQL Server 2008 - Truy vấn có điều kiện

nguồn tốt nhất cho các điều kiện tìm kiếm động:

Điều kiện tìm kiếm động trong T-SQL của Erland Sommarskog

có rất nhiều hàm ý tinh tế về cách bạn thực hiện việc này như liệu một chỉ mục có thể được sử dụng hay không. Nếu bạn đang sử dụng phiên bản SQL Server 2008 thích hợp, bạn chỉ có thể thêm OPTION (RECOMPILE) cho truy vấn và giá trị của biến cục bộ tại thời điểm chạy được sử dụng để tối ưu hóa.

Hãy xem xét điều này, OPTION (RECOMPILE) sẽ lấy mã này (nơi không thể sử dụng chỉ mục nào với mớ OR này s):

WHERE
    (@search1 IS NULL or [email protected])
    AND (@search2 IS NULL or [email protected])
    AND (@search3 IS NULL or [email protected])

và tối ưu hóa nó tại thời điểm chạy (miễn là chỉ @ Search2 được chuyển vào với một giá trị):

WHERE
    [email protected]

và một chỉ mục có thể được sử dụng (nếu bạn có một chỉ mục được xác định trên Cột 2)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để tách một ký tự ra khỏi một cột trong SQL Server?

  2. Các gói SSIS được lưu ở đâu?

  3. Cách giải quyết lỗi system.data.sqlclient.sqlexception (0x80131904)

  4. Kích hoạt và cập nhật thành một hàng trong SQL Server sau khi nó được cập nhật

  5. Xuất Dữ liệu Máy chủ SQL thành tệp CSV