小编Sri*_*Sri的帖子

当提供的值为null时,删除where子句

我想根据提供的值自动附加where子句

让我们考虑一个包含select查询的存储过程

CREATE PROCEDURE [dbo].[example]
    @From DATETIME,
    @T0 DATETIME
AS
  BEGIN TRY
      SELECT * 
      FROM footable 
      WHERE Fromdate = @From AND Todate = @TO
 END TRY
Run Code Online (Sandbox Code Playgroud)

如果@From的值为null,那么where子句必须是

SELECT * 
FROM footable 
WHERE Todate = @TO
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个?

非常感谢你的回答.但无论哪种,因为这并没有解决我的问题@From,并@To都是可选的.按照这种方法,我的代码会喜欢

SELECT * 
FROM footable 
WHERE (Fromdate = @From OR @From IS NULL)
  AND (Todate = @TO OR @To IS NULL)
Run Code Online (Sandbox Code Playgroud)

执行此操作会导致整个表格.

sql sql-server

2
推荐指数
1
解决办法
71
查看次数

标签 统计

sql ×1

sql-server ×1