create table tgrade (
fstuid varchar2(10),
scourseid varchar2(10),
f_grade int  null,
Primary Key(fstuid,scourseid)
); 
 insert into tgrade values ('1', '2', 1);
 insert into tgrade values ('2', '3', 1);
 insert into tgrade values ('3', '4', 1);
 insert into tgrade values ('4', '5', 1);如何过滤出fstuid和scourseid的并集,即1,2,3,4,5
我写的sql为什么不起作用
select num
  from (
        select distinct fstuid as num
          from tgrade
        union all
        select distinct scourseid as num from tgrade)

解决方案 »

  1.   

    SELECT  num
      from (
      select distinct fstuid as num
      from tgrade
      UNION
      select distinct scourseid as num from tgrade)
      ORDER BY NUM;
      

  2.   

    注意一下union 和 union all 的区别
    union all不会去重复行
      

  3.   

    +1
     再或者最前面在加个distinct 不就得了..
      

  4.   

    重复帖?http://topic.csdn.net/u/20111203/17/d166f5ee-dfde-4063-b918-1ba2dfea9bf1.html?23471
    如下即可:select fstuid num from tgrade
    union
    select scourseid num from tgrade或者:select distinct fstuid num from tgrade
    union
    select distinct scourseid num from tgrade
      

  5.   

    注意一下UNION和UNION ALL的区别就可以了