IPCD …… IPFG
100 1
103 0
109 1
……表如上,现在我现在想复制一条数据,当IPFG=1时直接复制,这个我搞定了
当IPFG=0的时候要找到IPCD的最大值,然后加一再复制
上面数据库就变成
IPCD …… IPFG
100 1
103 0
109 1
100 1
110 1
请问SQL语句怎么写?我用的库是IBM的小型机AS400。
100 1
103 0
109 1
……表如上,现在我现在想复制一条数据,当IPFG=1时直接复制,这个我搞定了
当IPFG=0的时候要找到IPCD的最大值,然后加一再复制
上面数据库就变成
IPCD …… IPFG
100 1
103 0
109 1
100 1
110 1
请问SQL语句怎么写?我用的库是IBM的小型机AS400。
得出IPFG=0时的IPCD的最大值了
IPCD是整个这一列的最大值,IPFG是1;对吧
我觉的用存储过程好点;sql语句如下:找到该列的最大值:select max(IPDC) into :MaxValue from tab;
找到当IPFG=0的时候要加在行数:select count(*) into :iCount from tab where IPFG=0;
然后用个循环,循环插入值就ok啦
do while i <= iCount
insert into tab values(MaxValue,1);
MaxValue = MaxValue +1; //保证即时出现的列IPCD中的最大值或者用:
//select max(IPDC) into :MaxValue from tab
i=i+1;
loop
select ipcd,ipfg from
(select IPCD,IPFG from a where a.IPFG=0
union
select max(IPCD) IPCD,IPFG from a where a.ipfh=1 group by ipcd) AA