如何在SQL Server中的OR条件中确定优先级

时间:2015-07-15 10:47:36

标签: sql sql-server sql-server-2008 between

我有一个简单的查询,我想在列中搜索一个值,如果没有找到匹配,那么我想丢弃where条件并从该列中选择任何随机值。

我尝试使用OR条件,使用大小写实现此目的,但无济于事

select top 10 * 
from tblRFCWorkload 
where (f1 ='mbb' or f1 = f1)

在上面的查询中,我希望结果表的所有行都包含' mbb',如果' mbb'找不到然后给出任何值而不是mbb。但相反,它只返回两行mbb,即使有10个匹配的行

select top 10 *
from tblRFCWorkload
where 1 = case when f1 = 'mbb' then 1 else 1 end

此查询也返回与第一个查询相同的结果

如果我将其更改为

select top 10 *
from tblRFCWorkload
where 1 = case when f1 = 'mbb' then 1 else 0 end

然后它只有具有mbb值的行。

在子句之间需要类似的东西...如果没有找到结果则搜索一个范围然后搜索第二个范围...我该怎么做???

0 个答案:

没有答案