0

这是我的表的样子:

(前面不说了,colum2是字符串类型,不是整数,不好意思)

╔══════╦═══════╗
║ USER ║ COLOR ║
╠══════╬═══════╣
║ a    ║ Red   ║
║ b    ║ Blue  ║
║ c    ║ Blue  ║
║ b    ║ Red   ║
║ a    ║ Red   ║
║ c    ║ White ║
╚══════╩═══════╝

我只需要只有颜色=“红色”的行。
它必须返回“a”(“b”也包含值“Blue”)。

如何设置选择?谢谢并恭祝安康

4

3 回答 3

3
SELECT  column1
FROM    TableName
GROUP   BY Column1
HAVING  COUNT(DISTINCT column2) = 1
        AND MAX(column2) = 1

here's another way,

SELECT  column1
FROM    TableName
GROUP   BY Column1
HAVING  MAX(column2) = MIN(column2) AND
        MAX(column2) = 1

UPDATE 1

SELECT  user
FROM    TableName
GROUP   BY user
HAVING  SUM(color = 'red') = COUNT(*)
于 2013-02-26T16:12:37.567 回答
0

更有效的方法是比较minmax值:

select column1
from t
group by column1
having min(column2) = max(column2) and min(column2) = 1

如果该列可以采用 NULL 值,则还需要排除这些值:

select column1
from t
group by column1
having min(column2) = max(column2) and min(column2) = 1 and count(column2) = count(*)
于 2013-02-26T16:15:12.947 回答
-1
Select distinct Column1 from Table1 Where Column2='1'

或者如果它是整数,那么:

Select distinct Column1 from Table1 Where Column2=1

假设 Table1 是表名

于 2013-02-26T16:11:39.010 回答