繁体   English   中英

SQL查找id-s,其中列的值等于特定行上的值

[英]SQL Find id-s where value of column equals a value on specific rows

假设我使用下表:

ID   LETTER    VALUE

1       A      NON-VALID   
1       B      VALID 
1       C      VALID
1       D      VALID
2       A      NON-VALID
2       B      VALID
2       C      NON-VALID
2       D      VALID

所以,我想要的很简单,但是我还没有找到类似的东西或自己弄清楚。

我想使用将要定义的所有字母中的值都设为VALID的ID,例如,如果要在Bs和Cs上使用有效值,则希望我的数据集返回ID 1。

愚蠢的例子:

SELECT ID 
FROM table 
WHERE VALUE=VALID IN EVERY ROW WHERE LETTER BETWEEN 'B' AND 'C'

您可以执行以下操作:

select id
from t
where letter in ('B', 'C') and value = 'Valid'
group by id
having count(distinct letter) = 2;  -- "2" is the number of letters in your list

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM