我有一个存储过程,它接受几个参数,其中两个允许空值。
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)
Param1
和param2
允许空值,但必须填写一个。如果param1
和param2
都留空,则无法输出。我只是无法正确使用语法。
答案 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 ) )