SELECT col1 FROM A UNION SELECT col2 AS col1 FROM A

解决方案 »

  1.   

    得到的结果是
    1
    2
    3


    a
    b
    c
    .
    是排序的,并且消除重复的数据
    :)
      

  2.   

    如果你要得所谓的无序的结果, 那恐怕用SQL是办不到的.
    我最不能理解的是为什么要得到无序的结果?
      

  3.   

    不懂。
    到底是要从A表生成B表,还是要从B表生成A表?
    好象是你是意思是A表中可能是
    col1 col2
    ---------
    2     b
    1     a
    3     c生成的B表也还是要按下面来:
    col1
    ---
    1
    a
    2
    b
    3
    c要是想这样也不难:
    select f2 as col1
    from 
    (
    select col1 as f1,col1 as f2
    from a
    union
    (select col1 as f1,col2 as f2
    from a) t1
    ) order by  t1.f1,t1.f2 
      

  4.   

    select:
    你的意思大概是把每一行的col2排到本行的col1下面吧。但是,
    既然表A本身都是无序的,次次得到如下结果都不可能:
    col1 col2
    --------
    1    a
    2    b
    3    c
    ...
    何谈别的……呢?如果得到3c2b1a的结果也满足需要,不妨引入一个递增的变量x,
    select col from
    (
    select col1 col,x*2 seq
    union
    select col2 col,x*2+1 seq
    )
    order by seq;
    至于这个x怎么来,不同的数据库有不同的方法,以上只是伪代码。