0

我有一个如下表,我想获取 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');

表输出

姓名 出去 人力资源
鲍勃 登录 登出 8
爱丽丝 登录 登出 9
彼得 登录 空值 0

预期产出

姓名 人力资源
鲍勃 登录 8
鲍勃 登出 8
爱丽丝 登录 9
爱丽丝 登出 9
彼得 登录 0
彼得 空值 0

我需要在将 IN & OUT 列组合成 IN 列的 Temp 表上实现上述输出,如何在 DB2 sql 中实现这一点

4

1 回答 1

1

一种方法使用联合:

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;
于 2020-12-08T06:04:25.950 回答