如何根据sql / plsql中的列选择不同的行值

时间:2013-12-06 05:20:45

标签: mysql sql

考虑下表:

name  mark1 mark2 mark3
x      1      2    2
y      2      2    2
z      1      2    3

在这里,我需要选择非不同的例如考虑第三行,其中它在column2中只包含一个“2”。为此如何编写SQL代码?我已经使用了count和distinct命令但却无法获得它。

3 个答案:

答案 0 :(得分:1)

以这种方式试试

SELECT * 
  FROM table1 
 WHERE mark1 <> mark2 
   AND mark1 <> mark3 
   AND mark2 <> mark3;

输出:

| NAME | MARK1 | MARK2 | MARK3 |
|------|-------|-------|-------|
|    z |     1 |     2 |     3 |

这是 SQLFiddle 演示

答案 1 :(得分:0)

如果您需要选择所有列包含不等的值

就像在这种情况下row3

SELECT * 
FROM table a 
WHERE a.m1<>a.m2 
  AND a.m2<>a.m3 
  AND a.m1<>a.m3

see fiddle here

答案 2 :(得分:0)

如果我理解你的问题,就会这样:

从标记中选择*(mark1&lt;&gt; mark2和mark1&lt;&gt; mark3和mark2&lt;&gt; mark3);