假设我有一个带有2列的简化table
:
+------+------+
| Col1 | Col2 |
+------+------+
| a | b |
| a | c |
| b | d |
+------+------+
现在,我想要一个结果集,我可以在第1行中得到我的标题,并且在下面的行中Col1
和Col2
的所有不同值都是这样的:
Header
a
b
c
d
虽然只有一个列可以正常工作:
select 'Header'
union
select Col1
from table
令人惊讶的是,它不适用于多个联盟:
select 'Header'
union
select Col1
union
select Col2
from table
失败。谁知道为什么,可以告诉我如何实现我的目标?
非常感谢!
答案 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;