我有一个数据库,我想在两列中选择所有内容但排除值彼此相等的所有行。这可能吗?
让我们说它看起来像这样:
+------------------+------------------+
| 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查询吗?
答案 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; 的方式。