我有一个存储过程,它根据 4 个参数从表中获取信息。
我想根据参数获取值,但如果参数为 NULL,则不检查该参数。因此,如果所有 4 个参数都为空,我将显示整个表格。
这是我的 SP(如您所见,这只适用于 1 个参数 atm):
CREATE PROCEDURE myProcedure
@Param1 nvarchar(50),
@Param2 nvarchar(50),
@Param3 nvarchar(50),
@Param4 nvarchar(50)
AS
BEGIN
IF(@Param1 IS NULL)
BEGIN
SELECT Id, col1, col2, col3, col4 FROM myTable
END
ELSE
BEGIN
SELECT Id, col1, col2, col3, col4 FROM myTable WHERE col1 LIKE @Param1+'%'
END
END
有没有办法做到这一点,而不需要IF
每个可能的组合(15 个 IF)?