我有一张如下表:
Id Plan Attributes Value
1 A Name AAA
2 A Class P
3 A IsActive True
4 B Name BBB
5 B Class Q
6 B IsActive False
7 C Name CCC
8 C Class R
9 C IsActive True
我想只获得那些将其IsActive属性的值设置为True的Plan(及其所有属性)。我无法做到这一点。
期望的结果:
Id Plan Attributes Value
1 A Name AAA
2 A Class P
3 A IsActive True
7 C Name CCC
8 C Class R
9 C IsActive True
答案 0 :(得分:1)
你可以试试这个:
修改强>
select * from mytable
where plan in (select plan from mytable
where Attributes = 'IsActive' and Value = 'True')
答案 1 :(得分:1)
尝试
select *
from tbl
where plan in (
select plan from tbl
where Attributes = 'IsActive' and Value = 'True'
)
答案 2 :(得分:1)
这就是你要找的东西:
SELECT *
FROM TABLE
WHERE PLAN IN (
SELECT DISTINCT PLAN
FROM TABLE
WHERE Attributes = 'IsActive'
AND Value = 'True');
内部查询将识别具有IsActive
属性和值等于True
的那些计划,外部查询将选择已在子查询中标识的那些对应计划的所有行。
答案 3 :(得分:0)
您是否正在寻找此DEMO HERE
select * from @table_
where [plan] not in (select [plan] from @table_ where value ='False')
答案 4 :(得分:0)
首先,此表未规范化。
应该是这样的:
CacheManager cm = CacheManager.newInstance();
Cache cache = cm.getCache("cache1");
Cache cacheTrade = cm.getCache("cache2");
您的非规范化表格的查询是:
Id Plan Name Class IsActive
1 A AAA P True
2 B BBB Q False
3 C CCC R True
注意:我在方括号中写了[Plan],因为Plan是一个保留字。