SQL select不加载具有特定值的行

SQL select不加载具有特定值的行,sql,sql-server,Sql,Sql Server,SQL选择不加载包含特定值的行,如果值字段中包含红色,则不加载ID 输入 输出 ID Row ID Value ------------------ 2 5161 Blue 2 5470 Green 5 6706 Green 5 7015 Blue 您可以使用子查询 Select * from tblColor where ID not in(Select Id from tblColor where Value = 'Red') 您可以按如下所示

SQL选择不加载包含特定值的行,如果值字段中包含红色,则不加载ID

输入

输出

ID  Row ID  Value
------------------
2   5161    Blue
2   5470    Green
5   6706    Green
5   7015    Blue

您可以使用子查询

Select * from tblColor where ID not in(Select Id from tblColor where Value = 'Red')
您可以按如下所示使用

create table MyTable(ID int, [Row ID] int,  Value varchar(20))
insert into MyTable Values
(1, 4234, 'Red'),
(1, 4543, 'Blue'),
(1, 4852, 'Green'),
(2, 5161, 'Blue'),
(2, 5470, 'Green'),
(3, 5779, 'Red'),
(3, 6088, 'Green'),
(4, 6397, 'Red'),
(5, 6706, 'Green'),
(5, 7015, 'Blue')

 Select MyTable.* from (Select id from MyTable 
 except
 select id from MyTable where Value = 'Red'
 )a inner join MyTable on a.Id = MyTable.Id

现场演示。

向我们展示您的查询。选择Cust\u ID,Row\u ID,Cust.dbo中的值,其中红色的值需要在您的查询中加引号。很抱歉出现错误:子查询的列太多选择不同的B.Cust\u ID,A.Row\u ID,A.Value From Cust.dbo A左加入Cust.dbo B其中B.Cust\u ID不在选择不同的B.Cust\u ID,A.Row\u ID,A.来自Cust.dbo的值A左键连接CustOrd.dbo B,其中A.Value red仅选择子查询中的Cust_Id此。。。从Cust.dbo A左连接CustOrd.dbo B中选择不同的B.Cust_ID、A.Row_ID、A.值,其中B.Cust_ID不在Cust.dbo A左连接CustOrd.dbo B中选择不同的B.Cust_ID,其中A.值=红色
create table MyTable(ID int, [Row ID] int,  Value varchar(20))
insert into MyTable Values
(1, 4234, 'Red'),
(1, 4543, 'Blue'),
(1, 4852, 'Green'),
(2, 5161, 'Blue'),
(2, 5470, 'Green'),
(3, 5779, 'Red'),
(3, 6088, 'Green'),
(4, 6397, 'Red'),
(5, 6706, 'Green'),
(5, 7015, 'Blue')

 Select MyTable.* from (Select id from MyTable 
 except
 select id from MyTable where Value = 'Red'
 )a inner join MyTable on a.Id = MyTable.Id