例如:
SQL> select deptno from emp;
这样我们将 emp 中所有 dept 都选出来了,但他们重复的太多了, 而大多数时候我们想要的却是独立的, 有必要将他们压缩一下。
所以我们可以使用下面这条语句
select distinct deptno from emp;
得到如下结果:
SQL> select distinct deptno from emp;
DEPTNO ———-
10
30
20
需要注意的是,如果选择列有多个的话,只有在选择列表中的所有列值均相同时才会被压缩掉,而不是压缩掉 distinct 后面的那一列,而且 distinct 的位置是要紧跟 select 关键字之后的。
例如:
以下是没有被压缩前的结果,
SQL> select job,deptno from emp order by job,deptno;
JOB DEPTNO
—————— ———-
ANALYST 20
ANALYST 20
CLERK 10
CLERK 20
CLERK 20
CLERK 30
MANAGER 10
MANAGER 20
MANAGER 30
PRESIDENT 10
SALESMAN 30
SALESMAN 30
SALESMAN 30
SALESMAN 30
以下是压缩过后的结果,只有在 job 和 deptno 均不相同的值才被压缩掉的。
SQL> select distinct job,deptno from emp order by job,deptno;
JOB DEPTNO
—————— ———-
ANALYST 20
CLERK 10
CLERK 20
CLERK 30
MANAGER 10
MANAGER 20
MANAGER 30
PRESIDENT 10
SALESMAN 30
已选择 9 行。