使用ISNULL或“LIKE”

时间:2013-02-20 21:19:56

标签: sql sql-server tsql

我有一个存储过程,它接受一些可能为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?

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

您可以使用:

WHERE field LIKE @param OR @param IS NULL