oracle 保留 case when 上一次的值 在线等。。
本帖最后由 New_sara 于 2012-11-20 14:06:49 编辑
问题描述:
JAVA程序版
大家都知道全局变量把,就类似于下面这种。
String code = " "; //一个空格
while (rs.hasNext() ){
if(flg == 1){
code = rs.get("code").value;
}
//获取一个数据连接,将获得的code字段插入到表中
//在此省略。。
insert.set("userName" , rs.get("userName").value);
insert.set("code" , code );
.......
}
大家看懂上面的意思了吧,就是说,一个list里的数据如下:
变换前:
userName flg code
a 2 0
b 1 c1
c 2 0
d 2 0
e 1 c2
f 2 0
变换后
userName flg code
a 2 " " -- 一个space
b 1 c1
c 2 c1
d 2 c1
e 1 c2
f 2 c2
现在想用ORACLE实现这样的功能,也不知道能不能实现,暂且放在这里大家一起讨论。
ORACLE 版
insert into t1
(
userName ,
code ,
flg
)
select
userName ,
case when flg = 1 then code
else ' '
end as code ,
flg
from
t1
以上SQL代码是有问题的,他得到的结果如下:
变换后
userName flg code
a 2 " " -- 一个space
b 1 c1
c 2 " "
d 2 " "
e