SQL Select 语句排除数据
Posted
技术标签:
【中文标题】SQL Select 语句排除数据【英文标题】:SQL Select statement to exclude data 【发布时间】:2014-03-26 17:18:33 【问题描述】:我正在尝试编写 SQL 查询以在 Configuration Manager 2012 中设置动态集合。我当前的查询是
select * from SMS_R_System where SMS_R_System.Name LIKE 'cmgr%'
这将获取以cmgr
开头的任何服务器名称并将其放入指定的集合中。
我的问题是我需要在此查询中添加另一个语句以排除包含以下条目 qw
、dw
和 tw
的服务器。这将防止我的非生产服务器被放入生产集合中。
我对 SQL 脚本的了解非常有限,因此感谢任何反馈。
【问题讨论】:
哪个字段包含条目'qw'、'dw'、'tw'? Adam,服务器名称为 serverappPW1 或 serverappQW1。它们是整个服务器名称的一部分,这是我们区分生产和非生产的方式... 什么是 Configuration Manager 2012? 配置管理器 2012 是 Microsoft System Center Suite 产品(以前称为 SMS)的一部分。用于软件分发、补丁管理和系统远程管理。 【参考方案1】:你能用这样的东西吗?
select * from SMS_R_System
where SMS_R_System.Name LIKE 'cmgr%'
AND SMS_R_System.Name NOT LIKE '%qw%'
AND SMS_R_System.Name NOT LIKE '%dw%'
AND SMS_R_System.Name NOT LIKE '%tw%'
【讨论】:
Roryap,谢谢。这可能会奏效。将服务器放入 Config Mgr 后,我需要进行测试。我会让你知道...再次感谢 您好,感谢您对此的所有建议。查询一直在工作,但我没有更复杂的查询。我有一个包含多个服务器名称的集合。我可以通过添加 OR 语句来更新我现有的查询。它看起来像这样: select * from SMS_R_System where SMS_R_System.Name LIKE 'acl%' OR SMS_R_System.Name LIKE 'bre%' OR SMS_R_System.Name LIKE 'eps%' OR SMS_R_System.Name LIKE 'hrk%' AND SMS_R_System .Name NOT LIKE '%qw%' AND SMS_R_System.Name NOT LIKE '%dw%' AND SMS_R_System.Name NOT LIKE '%tw%' 现在的问题是 AND 语句未被识别为具有 qw、dw 和tw 正在从查询中返回。关于如何使这一切正常工作的任何想法?顺便说一句,Config Mgr 是 Microsoft System Center Configuration Manager....谢谢【参考方案2】:您可能想看看that previous answer,它谈到了在查询中使用NOT EXISTS
命令。
【讨论】:
以上是关于SQL Select 语句排除数据的主要内容,如果未能解决你的问题,请参考以下文章
在 Oracle Sql 中的 Select 语句中根据条件排除和包含列标题