SQL仅在条件满足重复信息时返回值
我想编写一个SQL查询,仅当满足严格条件时才从数据库返回“Item”。实际上,我想说“仅当MyValue从不在6和9之间时获取项目SQL仅在条件满足重复信息时返回值,sql,between,strict,Sql,Between,Strict,我想编写一个SQL查询,仅当满足严格条件时才从数据库返回“Item”。实际上,我想说“仅当MyValue从不在6和9之间时获取项目 Item | MyValue 1 | 3 1 | 6 1 | 9 1 | 12 2 | 1 2 | 4 3 | 3 3 | 6 3 | 9 我想到了: SELECT * FROM data WHERE(MyValue NOT BETWEEN 6 and 9) 但这让我
Item | MyValue
1 | 3
1 | 6
1 | 9
1 | 12
2 | 1
2 | 4
3 | 3
3 | 6
3 | 9
我想到了:
SELECT * FROM data WHERE(MyValue NOT BETWEEN 6 and 9)
但这让我明白:
1 | 3
1 | 12
2 | 1
2 | 4
3 | 3
其中,目标是简单地实现这一点:
Item |
2 |
我希望这是有意义的。任何帮助都将不胜感激。尝试以下方法:
SELECT DISTINCT Item
FROM data
WHERE item NOT IN(SELECT Item
FROM data
WHERE Myvalue BETWEEN 6 AND 9);
拥有
子句来实现这一点:
select item
from t
group by item
having sum(case when MyValue BETWEEN 6 and 9 then 1 else 0 end) = 0;
having
子句统计值介于6和9之间的行数。当没有行具有此条件时,它将通过