2009-06-07 90 views
0

假设我有一个这样的表..SQL Server 2005的查询问题

ColA ColB ColC 
---------------------- 
A  100  1 
A  200  2 
A  300  3 
B  100  1 
B  200  2 
C  300  1 

我必须选择COLA其中100 = 1,200 = 2,300 = 3

请帮

+0

你能提供所需输出的样本? – 2009-06-07 05:25:08

+0

你想要的结果是什么,因为问题不是很清楚。 – Kane 2009-06-07 05:25:26

回答

3

从我能从你的问题明白了,你需要财产以后简单,如:

select COLA where ((COLB=100 and COLC=1) or (COLB=200 and COLC=2) or (COLB=300 and COLC=3)) 

或去为更普遍的:

select COLA where COLB = COLC*100 
0

有来处理的几种方法,但是这可能是最简单的,并且将执行相当体面给出您的选择:

SELECT ColA 
FROM MyTable 
WHERE (ColB = 100 AND ColC = 1) 
OR (ColB = 200 AND ColC = 2) 
OR (ColB = 300 AND ColC = 3) 
GROUP BY ColA 
HAVING COUNT(*) = 3 
2
SELECT ColA 
FROM my_table 
WHERE ColB = (ColC * 100);