社区
Oracle 高级技术
帖子详情
请教:如何将一条记录查询出来的结果为多条记录?
pslily
2015-11-05 10:07:45
表A
员工 调出部门 调入部门 调拨日期
A B C D
先要查询出A在时间D1~D2期间效力部门 D1<D<D2
查询出来的结果为这样
员工 效力部门 起始效力时间 结束效力时间
A B D1 D
A C D D2
请教改如何写查询语句?
...全文
259
4
打赏
收藏
请教:如何将一条记录查询出来的结果为多条记录?
表A 员工 调出部门 调入部门 调拨日期 A B C D 先要查询出A在时间D1~D2期间效力部门 D1<D<D2 查询出来的结果为这样 员工 效力部门 起始效力时间 结束效力时间 A B D1 D A C D D2 请教改如何写查询语句?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
z123zjf
2015-11-05
打赏
举报
回复
分析函数 lag()over() 没测试数据,没试,应该可行
pslily
2015-11-05
打赏
举报
回复
我想到过这样写: selec 员工,调出部门 as 效力部门, D1 as 起始,调拨日期 as 结束 from a where D between D1 and D2 union select 员工,调入部门 as 效力时间,调拨日期 as 起始,D2 as 结束 from a where D between D1 and D2 有没有更简单的?
小灰狼W
2015-11-05
打赏
举报
回复
就是一个union all 的关系,如果用两个A表来做表连接反而没有必要 性能也没有什么问题
pslily
2015-11-05
打赏
举报
回复
lag()over()好像是作用在同一字段的
Oracle 高级技术
3,499
社区成员
18,709
社区内容
发帖
与我相关
我的任务
Oracle 高级技术
Oracle 高级技术相关讨论专区
复制链接
扫一扫
分享
社区描述
Oracle 高级技术相关讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章