在此存储过程中,在 where 条件下,如果 @startDate 和 @EndDate 值为空,那么如何使用 COALESCE 处理它。
CREATE PROCEDURE dbo.SP_ManageLeaveSearch
@StartDate datetime,
@EndDate datetime,
@UserName CHAR(100),
@MarketID INT
AS
BEGIN
SELECT d1.UserName,c1.HouseName,c.StartDate,c.EndDate
FROM table1 c
Inner JOIN table2 d1 ON c.UserID = d1.UserID
WHERE
(
(
(@StartDate BETWEEN StartDate AND EndDate)
OR
(@EndDate BETWEEN StartDate AND EndDate)
OR
(
(@StartDate <= Startdate AND @EndDate>=EndDate)
)
)
AND
(
d1.UserName = COALESCE(@UserName, d1.UserName)
)
)
END
提前谢谢。