结果集为三联合

时间:2014-10-01 19:52:55

标签: sql union sybase sybase-ase

假设我有一个带有2列的简化table

+------+------+
| Col1 | Col2 |
+------+------+
| a    | b    |
| a    | c    |
| b    | d    |
+------+------+

现在,我想要一个结果集,我可以在第1行中得到我的标题,并且在下面的行中Col1Col2的所有不同值都是这样的:

Header
a
b
c
d

虽然只有一个列可以正常工作:

select 'Header'
union
select Col1
from table

令人惊讶的是,它不适用于多个联盟:

select 'Header'
union
select Col1
union
select Col2
from table

失败。谁知道为什么,可以告诉我如何实现我的目标?

非常感谢!

2 个答案:

答案 0 :(得分:2)

尝试:

select 'Header'
union
select Col1
from table
union
select Col2
from table

您在第二个SELECT语句中缺少FROM子句。

答案 1 :(得分:2)

问题是union不保证订购。试试这个:

select col
from (select 'Header' as col, 0 as ordering
      union
      select Col1, 1
      from table
      union
      select Col2, 1
      from table
     ) t
order by ordering;