0
我有一個存儲過程,它需要一些參數可能是NULL或可能不是。使用ISNULL或「LIKE」
我可以使用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 [email protected]_id and is_tech=1 and delete_flag=ISNULL(@deleted,delete_flag)
order by lastname,firstname asc
如果名字和姓氏的PARAMS不是空的,但不是一個字符,例如 「J」,怎麼能我寫了一些類似於delete_flag子句的類似於'J%'的名字,但是如果不使用null?
任何想法?
確保你把兩個部分周圍的括號當你有超過正是以上。 – 2013-02-20 21:45:50
嗯..似乎並沒有與parens一起工作... wherewhere users.org_id ='at'org_id和is_tech = 1和delete_flag = ISNULL('at'deleted,delete_flag)和(firstname LIKE'at'firstname或'at'firstname爲null)....我執行SP並且只傳遞它的org_id,但是當我通過例如「D」作爲第一個名字什麼都沒有出現,而且我知道有一個名字以「D」開頭的用戶 – thegunner 2013-02-20 21:50:07
@thegunner什麼都行不通?如果可能,請使用測試數據在http://sqlfiddle.com上顯示查詢。 – 2013-02-20 21:51:42