我有一个SQL表,其中包含以下条目:
RuleID Symbol
1 OR
1 123
1 363
2 AND
2 847
2 287
3 AND
3 NOT
3 234
3 867
4 NOT
4 995
结果应为:
3 AND
3 NOT
3 234
3 867
4 NOT
4 995
Symbol ='NOT'对应于RuleID ='3'和RuleID ='4'。我想
select * in table where RuleID = '3' or '4'
如何使用SQL Server执行此操作?
答案 0 :(得分:4)
您应该使用in
。例如:
从表WHERE RULEID中选择*(从表中选择RULEID,其中SYMBOL =' not')
答案 1 :(得分:1)
使用连接来做它通常比使用IN子句
更快SELECT T.*
from table T INNER JOIN
( SELECT Distinct RuleID
FROM table
WHERE SYMBOL = 'not'
) A
ON A.RuleID = T.RuleID