我试图提出一种方法来查询同一表中两个不同列中的值,其中结果集将指示实例,其中columnB的值不包含columnA的值。

例如,我的“节点”表包含“节点名”和“DNS”列。
这些值应类似于以下内容:

NodeName    DNS
Router1     Router1.mydomain.com

我想运行一个查询,以显示哪些行具有不包含(或以其开头)NodeName字段值的DNS值。我认为查询的功能应类似于以下内容,但显然在这种情况下,我缺少有关“赞”的使用的东西。
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/

10-12 02:55