繁体   English   中英

在A列中选择一个条目列表,其中B列=“值”。 然后选择列A是列表之一的所有条目

[英]Select a list of entries in Column A where column B = 'value'. Then select all entries where column A is one of the list

我有一个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执行此操作?

你应该用in了这一点。 例如:

从表WHERE RULEID中选择*(从表中的SYMBOL ='not'中选择RULEID)

为此,使用Joins通常比使用IN子句更快

SELECT T.* 
from table T INNER JOIN 
( SELECT Distinct RuleID 
  FROM table 
  WHERE SYMBOL = 'not' 
) A
ON A.RuleID = T.RuleID 

暂无
暂无

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

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