Where子句根据NULL参数改变?

时间:2012-08-10 19:21:16

标签: sql-server-2008

我有一个存储过程,它接受几个参数,其中两个允许空值。

param1 = null [name]
param2 = null [id]

我想实现以下逻辑:

if param1 is null then where clause = (where col2 like param2)
else if param2 is null then where clause = (where col1 like param1)
else where clause = (where col2 like @param2 and col1 like param1)

Param1param2允许空值,但必须填写一个。如果param1param2都留空,则无法输出。我只是无法正确使用语法。

1 个答案:

答案 0 :(得分:2)

我不知道那里有什么问题,但我会提供:

where ( param1 is not NULL or param2 is not NULL ) and
  ( ( ( col1 like param1 ) or param1 is NULL ) or
  ( ( col2 like param2 ) or param2 is NULL ) )