数据库骚操作之——拼接字段展开原创
金蝶云社区-i求知若渴
i求知若渴
4人赞赏了该文章 976次浏览 未经作者许可,禁止转载编辑于2020年04月22日 02:53:25

金蝶云星空有部分字段,是由多行数据拼接而成的,比如采购订单的【付款计划】-预付单号字段,再如凭证模板中的适用账簿字段。

test01.png

在批量操作和分析这些数据的时候,难免需要进行展开,下面以采购订单的预付单号字段为例进行展开。

步骤一:创建临时表保存展开后的数据

create table #chl_order_relbillno(fid int,fentryid int,frelbillno varchar(100))

步骤二:使用游标对每一个有预付流程的订单进行处理

declare @FENTRYID int

declare @fid int

declare @FRELBILLNO varchar(2000)

declare chl_cur cursor for 

select FENTRYID,fid,FRELBILLNO from  T_PUR_POORDERINSTALLMENT where FRELBILLNO<>''

open chl_cur

fetch chl_cur into @FENTRYID,@fid,@FRELBILLNO

while (@@FETCH_STATUS=0)

begin 

     while(CHARindex(',',@FRELBILLNO)>0)

begin

insert into #chl_order_relbillno(fid,fentryid,frelbillno) select @fid,@FENTRYID,SUBSTRING(@FRELBILLNO,1,CHARindex(',',@FRELBILLNO)-1)

set @FRELBILLNO=SUBSTRING(@FRELBILLNO,CHARindex(',',@FRELBILLNO)+1,len(@FRELBILLNO))

end

insert into #chl_order_relbillno(fid,fentryid,frelbillno) values(@fid,@FENTRYID,@FRELBILLNO)

fetch chl_cur into @FENTRYID,@fid,@FRELBILLNO

end

close chl_cur

deallocate chl_cur

go

步骤三:查询预付订单展开的结果

select * from #chl_order_relbillno

test02.png

ok!!!


赞 4