如果条件为true,则SQL筛选行

如果条件为true,则SQL筛选行,sql,sql-server,sql-server-2012,Sql,Sql Server,Sql Server 2012,我正在尝试运行一个查询,该查询将按此表达式筛选行(如果实例名称为“1%”,则删除具有相同EntityKeyID的所有行) 我删除了示例中的一些列,没有放置它们的位置 SELECT EntityKeyID ,[StatusTypeID] ,[InternalNote] ,[InstanceName] ,[DateRequired] ,[LinkName] ,[VendorName] FROM [A

我正在尝试运行一个查询,该查询将按此表达式筛选行(如果实例名称为“1%”,则删除具有相同EntityKeyID的所有行) 我删除了示例中的一些列,没有放置它们的位置

    SELECT  
       EntityKeyID
      ,[StatusTypeID]
      ,[InternalNote]
      ,[InstanceName]
      ,[DateRequired]
      ,[LinkName]
      ,[VendorName]
  FROM [ASTRO].[dbo].[vw_EntityServices_Legs]
where  (SELECT statustypeID from vw_EntityServices_Legs where InstanceName LIKE '1 %') NOT IN InstanceName 
你的话

如果实例名称类似于“1%”,则删除所有具有相同名称的行 EntityKeyID


你的
WHERE
子句有什么问题;除此之外,您在中使用的
,只有一个值,没有任何括号(
()
)。它应该是
不在(InstanceName)
!=InstanceName
。(如果你只打算提供一个值,我建议使用后者)。我在测试不同的东西时忘记了注释,我尝试了这样做不起作用。它不应该是instancename不在(选择)?如果你想过滤EntityKeyID,为什么要引用statustypeID。问题对我来说并不清楚,“我试过那个方法不起作用”。为什么?一个错误,一个意外的行为,一只猴子从SQL Server中跳出来,悄悄地说“拒绝访问”,然后再爬回来?:)请详细说明;提供详细信息/错误信息/等。
where EntityKeyID not in ( select nl.EntityKeyID 
                           from vw_EntityServices_Legs nl 
                           where nl.InstanceName LIKE '1 %'
                         )