我正在對傳入幾個變量並比較幾個字段的單個表執行搜索查詢。 像這樣:我需要一個搜索來匹配存儲爲空的值
WHERE a.callerfname LIKE @FName
AND a.callerlname LIKE @LName
AND a.callermname LIKE @MName
的形式,如果被選擇用於字段因此該領域的所有結果相匹配的一個沒有值發送以%。
一個字段是ProjectID
這是一個Guid,可能包含null
值。 當我沒有項目搜索選擇的形式通過在空白的Guid(000000-000 ...),我在CASE
檢查它像這樣:
AND a.projectid = CASE WHEN @ProjectId <> '00000000-0000-0000-0000-000000000000'
THEN @ProjectId
ELSE a.projectid
END
麻煩的是,如果行有一個NULL ProjectID
它不會匹配它自己。 我的問題是在一個GUID字段中的空值會匹配什麼?或者我怎麼能讓projectid返回所有的值,如果null的方式和名稱會比較%?
請看這裏:WHERE(column = @參數OR NULLIF(@Parameter,'%')IS NULL)' – 2012-04-16 18:06:38