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

SQL bỏ qua một phần của WHERE nếu tham số là null

Làm thế nào về một cái gì đó như

SELECT Id, col1, col2, col3, col4 
FROM    myTable 
WHERE   col1 LIKE @Param1+'%'
OR      @Param1 IS NULL

trong trường hợp cụ thể này, bạn cũng có thể đã sử dụng

SELECT Id, col1, col2, col3, col4 
FROM    myTable 
WHERE   col1 LIKE ISNULL(@Param1,'')+'%'

Nhưng nói chung, bạn có thể thử một cái gì đó như

SELECT Id, col1, col2, col3, col4 
FROM    myTable 
WHERE   (condition1 OR @Param1 IS NULL)
AND     (condition2 OR @Param2 IS NULL)
AND     (condition3 OR @Param3 IS NULL)
...
AND     (conditionN OR @ParamN IS NULL)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo polyline địa lý từ các điểm trong T-SQL

  2. 3 cách để tìm hiểu xem một cột có phải là một cột được tính toán trong SQL Server hay không

  3. TABLESAMPLE trả về số hàng sai?

  4. Crystal Report hiển thị văn bản HTML, nhưng các dấu đầu dòng không hiển thị. Tại sao?

  5. Truy vấn để chỉ lấy số từ một chuỗi