如果列中存在子字符串,则选择行,否则选择所有行

时间:2013-06-21 12:35:07

标签: sql ms-access-2010

我正在尝试根据字段中的文本是否包含子字符串从Access 2010查询中选择记录。但是,如果子字符串不存在,则应返回查询中的所有行。

例如,给出以下记录:

User      Fruit
----      -----

Fred      Apple
George    Banana
Mary      Apple
Mike      Pear
John      Pear



如果在SQL WHERE子句中指定'Apple',我希望返回的记录为:

User      Fruit
----      -----

Fred      Apple
Mary      Apple



如果SQL WHERE子句中未指定'Apple',我希望返回的记录为:

User      Fruit
----      -----

George    Banana
Mike      Pear
John      Pear



这似乎是一个如此简单的查询,并且更喜欢将标准应用于单个字段(即Fruit),因为实际查询非常复杂。但是,我只是不能让它做一个独家的,即一个或另一个,但不是两个。

此致

2 个答案:

答案 0 :(得分:0)

那样的东西?

 IF EXISTS (SELECT * FROM Table WHERE Fruit='Apple') THEN
     SELECT * FROM Table WHERE Fruit='Apple'
 ELSE
     SELECT * FROM Table WHERE Fruit!='Apple'
 END IF

答案 1 :(得分:0)

我想这样的东西:

SELECT * FROM TABLE 
WHERE FRUIT = 'Apple' OR 0 = (SELECT COUNT(1) FROM TABLE WHERE FRUIT = 'Apple')
相关问题