如何在 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 中的上一列下方获取下一列的值的主要内容,如果未能解决你的问题,请参考以下文章