查询函数问题急帮忙解决下

qiyuxiaozi 2010-04-10 07:37:58
字段 A B C D E
-----------------------------------
A 5 b 1 4
A 5 e 2 2
A 5 q 1 1
B 10 o 2 8
B 10 t 3 5
E 6 i 2 4
E 6 m 3 1
D 3 w 1 2
D 3 l 2 0
我得表结构 是这样得 本来是4列 E列得递减 我是通过MODEL DIMENSION BY 函数实现得 但是 我现在像要显示得是这样
字段 A B C D E
-----------------------------------
A 5 b 1 0
A 5 e 2 0
A 5 q 1 1
B 10 o 2 0
B 10 t 3 5
E 6 i 2 0
E 6 m 3 1
D 3 w 1 0
D 3 l 2 0
这样 用很么函数能实现啊!帮帮忙
...全文
117 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiyuxiaozi 2010-04-10
  • 打赏
  • 举报
回复
我还是不太懂麻烦加下我QQ8596824 好吗 ?
iqlife 2010-04-10
  • 打赏
  • 举报
回复
你没有明白我的意思,我现在机器上没有ORACLE ,我写个大概给你
SELECT A,B,C,D,NVL2(F,E,0)
FROM (
select A,B,C,D,E,lag(E)over(PARTITION BY A ORDER BY A) AS F
from tab
)
tangren 2010-04-10
  • 打赏
  • 举报
回复
E列值是怎么来的?
qiyuxiaozi 2010-04-10
  • 打赏
  • 举报
回复
错啦 您没看清楚下边得排列吗!~
最一个是有值得
iqlife 2010-04-10
  • 打赏
  • 举报
回复
A 5 b 1 4
A 5 e 2 2
A 5 q 1 1
B 10 o 2 8
B 10 t 3 5
分组后取得下一条记录的E,即LAG(E),得到
A B C D E LAG(E)
A 5 b 1 4 2
A 5 e 2 2 1
A 5 q 1 1 null
B 10 o 2 8 5
B 10 t 3 5 null
再判断LAG(E)不为空E就为0,

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧