【发布时间】:2013-07-25 06:36:12
【问题描述】:
我有一个基于 4 个参数从表中获取信息的存储过程。
我想根据参数获取值,但如果参数为 NULL,则不检查该参数。因此,如果所有 4 个参数都为 null,我将显示整个表格。
这是我的 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
有没有办法做到这一点没有每个可能的组合(15 个 IF)都有一个IF?
【问题讨论】:
-
Erland Sommarskog 的Dynamic Search Conditions in T-SQL 将是通常的起点。
标签: sql database sql-server-2008 stored-procedures