0
如果@title爲空或其空白爲'',如何使此返回所有結果?如果字段爲空或空白,則返回所有行
@title varchar
AS
SELECT *
FROM mydb
Where (Title = @title)
我一直試圖勾搭不同的方式,但我總是沒有行的回報。我只需要返回所有行,如果沒有輸入到參數中。
如果@title爲空或其空白爲'',如何使此返回所有結果?如果字段爲空或空白,則返回所有行
@title varchar
AS
SELECT *
FROM mydb
Where (Title = @title)
我一直試圖勾搭不同的方式,但我總是沒有行的回報。我只需要返回所有行,如果沒有輸入到參數中。
地址:
...
OR @Title IS NULL
OR @Title = ''
的OR
使它包容性,而且也沒有辦法,你將有@Title
滿足這三個標準,一個以上的(除非你的Title
領域具有NULL
或空值)。
用途:
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,但聲明沒有優化搜索 - 它將不會發揮出這種聲明只是它應該處理的情況。
@Bob,這肯定會起作用,但如果你真的只關心沒有傳入任何參數,它可能是矯枉過正的 – 2011-04-05 14:55:22