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

Làm thế nào để bạn truy vấn một cột int cho bất kỳ giá trị nào?

Tôi hiểu rằng bạn muốn một số hành vi động trên WHERE của bạn mệnh đề mà không cần phải xây dựng động WHERE của bạn mệnh đề.

Với một tham số duy nhất, bạn có thể sử dụng ISNULL (hoặc COALESCE ) như thế này:

 SELECT * FROM Table WHERE ID = ISNULL(@id, ID)

cho phép một NULL tham số để phù hợp với tất cả. Một số thích dài hơn nhưng rõ ràng hơn:

 SELECT * FROM Table WHERE (@id IS NULL) OR (ID = @id)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MappingException Edm.String không tương thích với SqlServer.varbinary

  2. So sánh chuỗi không thành công với biến varchar

  3. Băm mật khẩu vào SQL

  4. Quyền EXECUTE bị từ chối trên các loại bảng do người dùng xác định?

  5. SQL Server 2005 ROW_NUMBER () không có ORDER BY