【问题标题】:Old Job and New Job columns SQL旧作业和新作业列 SQL
【发布时间】:2021-04-09 15:20:27
【问题描述】:

是否可以显示 3 个新列 - 旧作业、新作业、起始日期

我下面有一个 sql 的例子。

select
    emp_no,
    emp_name, 
    job_title, 
    valid_from,
    valid_to
    
from 
   tableA

我想显示列 -

Emp No Emp 名称、旧作业、新作业、起始日期

Old Job 和 New Job 是 Job Title 中的值,From Date 是 Valid From

TIA

亚西尔

【问题讨论】:

  • 看起来像 lead / lag 而不是 pivot
  • 请提供样本数据和所需的输出
  • 附上图片作为参考
  • 图片是not a sample data请阅读sql tag wiki
  • 顺便说一句,我不是“魔法约会”的忠实粉丝。即:valid_to = 31/12/9999。如果 'valid_to' 日期尚未确定(无论出于何种原因),则将其保留为 NULL。

标签: sql oracle pivot


【解决方案1】:

试试lag:

select *
from (
  select
    emp_no,
    emp_name,
    lag(job_title) over (partition by emp_no order by valid_from) as old_job,
    job_title as new_job,
    valid_from
  from tableA
)
where old_job is not null

【讨论】:

  • 谢谢。我会试试看
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-15
  • 1970-01-01
  • 1970-01-01
  • 2021-01-05
  • 2018-07-04
  • 1970-01-01
相关资源
最近更新 更多