2014-11-14 35 views
0

我有10k条记录的表,并且想筛选条件上的数据。SQL Server:WHERE子句在列的选定变量上

基本上,标准是在两列之一与int和其他与文本。

样本数据:

Label Value 
A 24 
A 18 
A 15 
A 35 
A 27 
A 37 
B 18 
B 29  
B 18 
B 16 
B 16 

我想过滤显示的数据不包括Value < 20和Label = A.

请你帮我在得到回答此问题。

在此先感谢。

+0

你想排除任何值<20与标签= A或你想排除任何值<20(无论标签值)和任何行与标签='A' (不管值的值)? – 2014-11-14 16:35:45

+0

@SteveFord - 对不起,延迟回复。我想获得所有的值WHERE [Label] ='B'和([Label] ='A'和VALUE> 20)'。我只想排除那些'([标签] ='A'和值<20)'的数据' – Dee 2014-11-17 07:57:25

回答

3

这个简单的查询怎么样?

Select * From MyTable Where Value >= 20 And Label <> 'A' 
+0

它给我的值只有'B'大于20。但我应该得到的是。我应该从'B'中得到所有的值,并且想排除只有'A'的值,其中'A'的值<20. – Dee 2014-11-17 07:46:06

+0

我通过对每个条件的两个查询找到一个解决方案,并使用union all来组合结果。但我想在一个查询中这样做。 – Dee 2014-11-17 08:37:51

0

我想你已经差不多了。试试这个:

Select * From MyTable 
Where [Label] = 'B' OR ([Label] = 'A' AND [Value] > 20)