简体   繁体   English

如何在 DB2 Sql 中的上一列下方获取下一列的值

[英]how to get value of next column below previous column in DB2 Sql

I have a table as below, i want to get the OUT column value below the IN column and adding a new record.我有一个如下表,我想获取 IN 列下方的 OUT 列值并添加一条新记录。

    create table Temp (
    [name] varchar(10),
    [In] varchar(10),
    [Out] varchar(10),
    [HRs] varchar(10),
    ); 
    
    insert into Temp values('bob','login','logout','8');
    insert into Temp values('alice','login','logout','9');
    insert into Temp values('peter','login',null,'0');

Table output表output

NAME姓名 IN OUT出去 HRs人力资源
bob鲍勃 login登录 logout登出 8 8
alice爱丽丝 login登录 logout登出 9 9
peter彼得 login登录 NULL NULL 0 0

Expected Output预计 Output

NAME姓名 IN HRs人力资源
bob鲍勃 login登录 8 8
bob鲍勃 logout登出 8 8
alice爱丽丝 login登录 9 9
alice爱丽丝 logout登出 9 9
peter彼得 login登录 0 0
peter彼得 NULL NULL 0 0

I need to achieve the above output on the Temp table combining the IN & OUT columns into IN column, how to achieve this in DB2 sql我需要在 Temp 表上实现上述 output 将 IN 和 OUT 列合并到 IN 列中,如何在 DB2 sql 中实现这一点

One approach uses union:一种方法使用联合:

SELECT NAME, "IN", HRs
FROM
(
    SELECT NAME, "IN", HRs, 1 AS pos FROM Temp
    UNION ALL
    SELECT NAME, "OUT", HRs, 2 FROM Temp
) t
ORDER BY NAME, pos;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM