2011-04-05 134 views
0

如果@title爲空或其空白爲'',如何使此返回所有結果?如果字段爲空或空白,則返回所有行

@title varchar 

AS 

SELECT * 
FROM mydb 
Where (Title = @title) 

我一直試圖勾搭不同的方式,但我總是沒有行的回報。我只需要返回所有行,如果沒有輸入到參數中。

回答

4

地址:

... 
OR @Title IS NULL 
OR @Title = '' 

OR使它包容性,而且也沒有辦法,你將有@Title滿足這三個標準,一個以上的(除非你的Title領域具有NULL或空值)。

+0

@Bob,這肯定會起作用,但如果你真的只關心沒有傳入任何參數,它可能是矯枉過正的 – 2011-04-05 14:55:22

1

用途:

IF LEN(@title) > 0 THEN 
BEGIN 

    SELECT * FROM mydb t 
    WHERE t.title = @title 

END 
ELSE 
BEGIN 

    SELECT * FROM mydb 

END 

您可以使用:

SELECT * 
    FROM mydb 
WHERE (LEN(@title) = 0 OR t.title = @title) 

...只使用@title變量,如果它不是零長度或NULL,但聲明沒有優化搜索 - 它將不會發揮出這種聲明只是它應該處理的情況。

相關問題