SQL:如果两列中的值都排除行

时间:2014-04-03 08:34:47

标签: mysql sql

我有一个数据库,我想在两列中选择所有内容但排除值彼此相等的所有行。这可能吗?

让我们说它看起来像这样:

+------------------+------------------+
| Login            | Alias            |
+------------------+------------------+
| user1@domain.com | user1@domain.com |
| user1@domain.com | user1@example.com|
| user1@domain.com | user7@domain.com |
| user2@domain.com | user2@domain.com |
| user3@domain.com | user3@domain.com |
+------------------+------------------+

我想要的就是这个:

+------------------+------------------+
| Login            | Alias            |
+------------------+------------------+
| user1@domain.com | user1@example.com|
| user1@domain.com | user7@domain.com |
+------------------+------------------+

这可以通过SQL查询吗?

3 个答案:

答案 0 :(得分:4)

试试这个

SELECT * 
FROM table_name 
WHERE Login <> Alias

答案 1 :(得分:0)

select name, Alias, 
   case 
      when Login=Alias  then 'true' 
      else 'false' 
   end 
from TableName;

答案 2 :(得分:0)

查看比较运算符的手册: http://technet.microsoft.com/en-us/library/ms188074.aspx

虽然!=可行,但它不是ISO标准运营商。这意味着它的便携性会降低。

我建议您使用ISO标准运算符<>http://technet.microsoft.com/en-us/library/ms176020.aspx

SELECT login
     , alias
FROM   your_table
WHERE  login <> alias

你可能在想&#34;为什么要对我使用标准问题?!&#34;。好吧,当你第一次从一个DBMS迁移到另一个DBMS时,你会非常感激&#34;更正确&#34; 的方式。