我试图找到一种方法来查询同一个表中两个不同列中的值,其中结果集将指示columnB的值不包含columnA值的实例。
例如,我的“节点”表包含“NodeName”和“DNS”列。
值应类似于以下内容:
NodeName DNS
Router1 Router1.mydomain.com
我想运行一个查询来显示哪些行的DNS值不包含(或以NodeName字段的值开头)。我认为查询应该具有类似于以下内容的功能,但显然我在这种情况下缺少关于使用“赞”的内容。
SELECT NodeName, DNS
WHERE DNS NOT LIKE 'NodeName%'
我正在使用SQL Server 2005,任何建议都将非常感谢...... :)
答案 0 :(得分:5)
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:谢谢:你应该把它作为你自己的答案发布......
答案 1 :(得分:0)
SELECT USR.USER_ID, USR.LDAP_TITLE, LRM.LDAP_ROLE, LRM.ROLE_ID, RLS.PRIMARY_ROLE
FROM USERS USR, NEW_LDAP_ROLE_MATCH LRM, NEWROLES RLS
WHERE (INSTR(USR.LDAP_TITLE,LRM.LDAP_ROLE) > 0)
AND LRM.ROLE_ID = RLS.ROLE_ID;
需要花费大量时间才能使方案正常工作。请查看以下链接以获取SQL查询。 http://www.anaesthetist.com/mnm/sql/query.htm