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

Posted

技术标签:

【中文标题】如何在 DB2 Sql 中的上一列下方获取下一列的值【英文标题】:how to get value of next column below previous column in DB2 Sql 【发布时间】:2020-12-08 05:57:02 【问题描述】:

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

表格输出

NAME IN OUT HRs
bob login logout 8
alice login logout 9
peter login NULL 0

预期输出

NAME IN HRs
bob login 8
bob logout 8
alice login 9
alice logout 9
peter login 0
peter NULL 0

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

【问题讨论】:

【参考方案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;

【讨论】:

以上是关于如何在 DB2 Sql 中的上一列下方获取下一列的值的主要内容,如果未能解决你的问题,请参考以下文章

Excel如何把同一列的内容拆分为两列

SQL数据库中 如何让某一列的值自动累加1?

如何将一列的列值组合到 MySQL 中的另一列中?

SQL - 为给定列中的值获取另一列的值

DB2如何把列 修改为 "可空"?

sQL 数据库如何获取一列的非重复值