将列更改为行-Oracle SQL

时间:2019-06-04 10:38:21

标签: sql oracle

我有一张桌子:

表1

u_a_id      user_id       c_nm       c_val     c_seq
1           10012         test1      123       1
1           10012         test2      abc       2
1           10012         test3      xyz       3
1           10012         test4      123       4

2           10013         test1      456       1
2           10013         test2      xvv       2
2           10013         test3      tau       3
2           10013         test4      uyt       4

我需要将user_id = 100的每个u_a_id转换为c_seq的行格式

输出:

u_a_id      user_id       c_nm       c_val     c_seq
1           10012         test1      123       1
1           10012         test2      abc       2
1           10012         test3      xyz       3
1           10012         test4      123       4
1           10012         user_id    10012     100

2           10013         test1      456       1
2           10013         test2      xvv       2
2           10013         test3      tau       3
2           10013         test4      uyt       4
2           10013         user_id    10013     100

如何使用Oracle SQL?

1 个答案:

答案 0 :(得分:4)

为什么不union all

select u_a_id, user_id, c_nm, c_val, c_seq from table1
union all
select distinct u_a_id, user_id, 'user_id', to_char(user_id), 100 from table1
order by u_a_id, c_seq

dbfiddle