2013-04-25 73 views
-2

我怎么有一列ID为,列B值=“秋天”或列B值=“春秋”而不是两个表的记录?快速查询(秋季,春季)

谢谢。

+2

哪有列有两个值: '倒' *和*'春'? – 2013-04-25 04:47:46

+0

好了,所以我们说,在表中的记录是... 1“秋天” 2“春天” 2“秋天”我只想要1“秋天” – 2013-04-25 04:50:20

+0

你的定义很模糊,并与每一个版本的变更。另外,你在谈论哪种SQL引擎,Microsoft SQL? – 2013-04-25 04:51:52

回答

2

尝试此查询

更新的问题 如果只有秋季和字符串值

Select * from atablename where b in ('fall', 'spring') group by a having count(a) = 1 

任何值

Select * from atablename group by a having count(a) = 1 

对于老问题

Select * from atablename where (a = 'Fall' AND b != 'Spring') OR (a != 'Fall' AND b = 'Spring') 
+0

噢噢噢,对不起,我有问题的错误。让我纠正它。 – 2013-04-25 04:46:27

+1

你可能想改变“失败”到“堕落” ...... – 2013-04-25 04:48:36

+0

感谢斯科特,更新:) – 2013-04-25 04:49:18

1

对于原题:

SELECT 
    * 
FROM your_table t 
WHERE ((t.a = 'Fall' AND t.b != 'Spring') OR (t.a != 'Fall' AND t.b = 'Spring')) 

应该做的伎俩

对于新的,

SELECT 
    t.a 
    , t.b 
FROM your_table t 
WHERE ((t.b = 'Fall' AND NOT EXISTS (SELECT * FROM yourtable t1 WHERE t1.a = t.a AND t1.b = 'Spring')) 
    OR (t.b = 'Spring' AND NOT EXISTS (SELECT * FROM yourtable t1 WHERE t1.a = t.a AND t1.b = 'Fall'))) 

应工作

+0

我提出的问题有误,请再看一看。 – 2013-04-25 04:47:13