我试图想出一种方法来查询同一个表中两个不同列中的值,其中结果集将指示columnB 的值不包含columnA 的值的实例。
例如,我的“节点”表包含“NodeName”和“DNS”列。
这些值应类似于以下内容:
NodeName DNS
Router1 Router1.mydomain.com
我想运行一个查询来显示哪些行的 DNS 值不包含(或开头)NodeName 字段的值。我认为查询的功能应该类似于以下内容,但显然我遗漏了在这种情况下使用“Like”的一些内容。
SELECT NodeName, DNS
WHERE DNS NOT LIKE 'NodeName%'
我正在使用 SQL Server 2005,如有任何建议,我们将不胜感激...:)
最佳答案
SELECT NodeName, DNS
WHERE DNS NOT LIKE NodeName + '%' AND DNS NOT LIKE '%' + NodeName + '%'
您的 DNS LIKE 'NodeName%'
正在将字符串文字“NodeName”与 DNS 进行比较
编辑:
Nissan Fan 添加了 NOT LIKE '%' + NodeName + '%'
,这意味着不需要 NOT LIKE NodeName + '%'
。
这取决于是否想要“包含”或“开始于”:选择您的选择。
@Nissan Fan:谢谢:你应该将其发布为你自己的答案......
关于sql - 使用 "Like"函数比较同一个表中的 2 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2403596/