【发布时间】:2021-12-22 04:47:06
【问题描述】:
我在 db2 中有下表:
| id | person 1 | person 2 | person 3 |
|---|---|---|---|
| 1 | 10 | 12 | 15 |
我现在想做一个返回以下内容的查询:
| id | person |
|---|---|
| 1 | 10 |
| 1 | 12 |
| 1 | 15 |
如何在 db2 中做到这一点?
提前致谢!
【问题讨论】:
我在 db2 中有下表:
| id | person 1 | person 2 | person 3 |
|---|---|---|---|
| 1 | 10 | 12 | 15 |
我现在想做一个返回以下内容的查询:
| id | person |
|---|---|
| 1 | 10 |
| 1 | 12 |
| 1 | 15 |
如何在 db2 中做到这一点?
提前致谢!
【问题讨论】:
不多次扫描同一个可能很大的表会更有效。
试试这个:
SELECT T.ID, V.PERSON
FROM MYTAB T, TABLE (VALUES T.PERSON1, T.PERSON2, T.PERSON3) V (PERSON);
【讨论】:
使用 UNION:
select id, person1 as person
from the_table
union all
select id, person2
from the_table
union all
select id, person3
from the_table
【讨论】: