1

我有一个存储过程,它接受一些可能为 NULL 或可能不是的参数。

如果我有一个明确的参数值,我可以使用 ISNULL 选项,但如果我想使用“LIKE”而不是 null,我不知道该怎么做。见下文:

参数是:

@org_id as int,
@deleted as bit = NULL,
@firstname as char = NULL,
@lastname as char = NULL

选择语句是:

select user_id, firstname,lastname,firstname +' ' + lastname as fullname, email, phone,     is_tech, is_admin,is_cust
from users 
where users.org_id=@org_id and is_tech=1 and delete_flag=ISNULL(@deleted,delete_flag)
order by lastname,firstname asc

如果名字和姓氏参数不为空,而是一个字符,例如“J”,我该如何编写类似于 delete_flag 子句的内容..和名字如 'J%' 但如果不使用 null?

有任何想法吗?

4

1 回答 1

5

你可以使用这个:

WHERE field LIKE @param OR @param IS NULL
于 2013-02-20T21:22:19.753 回答