我有一个存储过程,它接受一些可能为NULL或可能不是的参数。
如果我有一个参数的清除值,我可以使用ISNULL选项,但如果我想使用“LIKE”而不是null,我不知道该怎么做。见下文:
参数是:
@org_id as int,
@deleted as bit = NULL,
@firstname as char = NULL,
@lastname as char = NULL
Select语句是:
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
如果firstname和lastname参数不是null,而是一个字符,例如“J”,我怎么能写一些类似于delete_flag子句的东西..和'j%'这样的名字,但是如果不使用null?
有什么想法吗?
答案 0 :(得分:4)
您可以使用:
WHERE field LIKE @param OR @param IS NULL