将两个独立列的结果合并为一个细长列

Yas*_*eni 0 sql oracle select

我的桌子:

ID       Name     Status1     Status2
-------------------------------------
 1       foo       bar        grain
 2       bar       foo        sball
 3       foo       bar        grain
 4       far       boo        sball
Run Code Online (Sandbox Code Playgroud)

我需要它实际上这样出来:

ID      Name      Status    
-------------------------------
 1       foo       bar       
 1       foo       grain
 2       bar       foo       
 2       bar       sball
 3       foo       bar       
 3       foo       bar
 4       far       boo       
 4       far       sball
Run Code Online (Sandbox Code Playgroud)

我该怎么做呢,你能解释一下原因吗?

我尝试过concat,但这显然是错误的.

pot*_*hin 5

您可以使用union all(或者union,它取决于您想要获得的内容Status1并且Status2是相同的):

select ID, Name, Status1 as Status from tbl
union all
select ID, Name, Status2 from tbl
Run Code Online (Sandbox Code Playgroud)

SQLFiddle