我有一张桌子:tblperson
tblperson
中有两列:
person1 person2
Anna Sarah
Louis Mike
Kisha
我想在第一列(person2
)下方添加第二列(person1
)以仅创建一列(persons
)
persons
Anna
Louis
Kisha
Sarah
Mike
我已尝试使用UNION
,但如果涉及的列数超过两列,这会使我的查询更大
任何人都可以提供查询以生成这些记录的提示吗?
谢谢
答案 0 :(得分:2)
您可以使用union all
执行此操作,也可以使用order by
执行此操作:
select person
from (select person1 as person, 1 as which from tblperson union all
select person2 as person, 2 from tblperson
) p
order by which;
order by
非常重要。确实,您可以这样做:
select person1 as person from tblperson union all
select person2 as person from tblperson
但是,我认为这有点危险,因为SQL标准不保证第一个子查询在第二个子查询之前执行。实际上,SQL Server会按顺序执行这些操作,但是没有持续的保证。