如果字段为空或空白,则返回所有行

时间:2011-04-05 14:48:07

标签: sql sql-server-2005

如果@title为null或其空白''?

,如何使此返回所有结果
@title varchar

AS

SELECT *
FROM mydb
Where (Title = @title)

我一直试图以不同的方式搞乱,但我总是得不到行返回。如果没有任何内容输入参数,我只需要返回所有行。

2 个答案:

答案 0 :(得分:4)

添加:

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

OR使其具有包容性,并且您无法@Title满足这三个条件中的一个以上(除非您的Title字段具有NULL或空白值)。

答案 1 :(得分: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,但是该语句不是sargable - 它不会像将语句分解为它需要的那样好为了这种情况。