首页 > 解决方案 > SQL根据列选择多行中的数据

问题描述

我想编写一个 Oracle sql 查询,它将按以下顺序获取数据:

NAME    Phone1  Phone2
JOHN    1123     321
RIK 11  Null
KATE    Null    21

输出:

NAME    PHONE
JOHN    1123
JOHN    321
RIK 11
KATE    21

标签: sqloracle

解决方案


您可以尝试使用 UNION ALL

select name, phone1 as phone from tablenmae
union all
select name, phone2  from tablenmae

或者您可以尝试使用 UNPVOT

select *
  from tablenmae
unpivot
(
    phone
    for val in (phone1, phone2)
)

推荐阅读