将列名称赋予值行

Give column name to values rows

在 Apache Derby 中,我使用以下语句生成一些值:

select * from (
    select 10 as DISTANCE_KM from SYSIBM.SYSDUMMY1 union
    select 15 as DISTANCE_KM from SYSIBM.SYSDUMMY1 union
    select 18 as DISTANCE_KM from SYSIBM.SYSDUMMY1 union
    select 21 as DISTANCE_KM from SYSIBM.SYSDUMMY1 union
    select 25
) as DISTANCE

哪个returns:

|DISTANCE_KM|
|-----------|
|10         |
|15         |
|18         |
|21         |
|25         |

有一种更简洁的方法可以生成类似的结果:

select * from (values 10, 15, 18, 21, 25) as DISTANCE

哪个returns:

|1          |  <---- I'd like this column to be called DISTANCE_KM
|-----------|
|10         |
|15         |
|18         |
|21         |
|25         |

有没有办法将返回的列别名为 DISTANCE_KM?这是我试过的方法,但没有用:

select "1" as DISTANCE_KM from (values 10, 15, 18, 21, 25) as DISTANCE

p.s。我不允许更改模式 - 所以我不能将值存储在它们自己的 table.

我手头没有 db2,但这可能有用:

select *
from (values 10, 15, 18, 21, 25) as DISTANCE(DISTANCE_KM);

如果没有,那么这将起作用:

with distance(DISTANCE_KM) as (
      select *
      from (values 10, 15, 18, 21, 25) as DISTANCE
     )
. . .