如何在SQL Server 2008中编写此查询?

时间:2015-09-15 11:37:31

标签: sql sql-server

我有一张桌子[dbo]。[产品]:

[id] [component] [quantity]  
01----------A-------------2  
02----------A-------------6  
03----------A-------------8  
04----------B-------------1  
05----------B-------------2  
06----------C-------------4  
07----------C-------------7  
08----------C-------------5  
09----------C-------------9  
10----------C-------------3  
11----------D-------------2  
12----------D-------------7  

我需要一个查询来查找这些记录:

  1. 中的组件('B','C','D')和
  2. B的量> 1 AND
  3. C的数量> 5 AND
  4. D的数量> 6
  5. 结果应该是:

    [id] [component] [quantity]   
    05----------B-------------2  
    07----------C-------------7  
    09----------C-------------9  
    12----------D-------------7  
    

2 个答案:

答案 0 :(得分:3)

您可以使用andor

执行此操作
where (component = 'B' and quantity > 1) or
      (component = 'C' and quantity > 5) or
      (component = 'D' and quantity > 6)

答案 1 :(得分:1)

SELECT * FROM Table_NAME
WHERE component  IN ('B','C','D')  
AND Quantity >(
(CASE WHEN (component='B') THEN 1
      WHEN (component='C') THEN 5
      ELSE 6
      END)
相关问题