请教下游标字符串循环相加的问题?
请问 下我定义一个临时变量 在循环相加,结果总是不对?拜托大家帮我看看
create proc test_prehp99_th
as
declare @fzdm char(10)
declare @dzdm char(10)
declare @ch char(10)
declare @jyzdm char(10)
declare @jyzdm_str char(50)
declare del_cur cursor for
select fzdm,dzdm,ch from prehp99_bf
open del_cur
fetch del_cur into @fzdm,@dzdm,@ch
while @@sqlstatus!=2
begin
if @@sqlstatus=1
begin
raiserror 20001,"select fail"
return
end
select @jyzdm_str=""
/*以下代码 循环获取 @jyzdm 值,并累加 拼成新字串 @jyzdm_str */
declare aaa_cur cursor for
select distinct jyzdm from prehp99 where fzdm=@fzdm and dzdm=@dzdm and ch=@ch
open aaa_cur
fetch aaa_cur into @jyzdm
while @@sqlstatus!=2
begin
if @@sqlstatus=1
begin
raiserror 20001,"select fail"
return
end
select @jyzdm_str =@jyzdm_str+@jyzdm+','
print @jyzdm_str /*调试的时候什么也没显示 ??*/
fetch aaa_cur into @jyzdm
end
close aaa_cur
deallocate cursor aaa_cur
fetch del_cur into @fzdm,@dzdm,@ch
end
close del_cur
deallocate cursor del_cur
go
create proc test_prehp99_th
as
declare @fzdm char(10)
declare @dzdm char(10)
declare @ch char(10)
declare @jyzdm char(10)
declare @jyzdm_str char(50)
declare del_cur cursor for
select fzdm,dzdm,ch from prehp99_bf
open del_cur
fetch del_cur into @fzdm,@dzdm,@ch
while @@sqlstatus!=2
begin
if @@sqlstatus=1
begin
raiserror 20001,"select fail"
return
end
select @jyzdm_str=""
/*以下代码 循环获取 @jyzdm 值,并累加 拼成新字串 @jyzdm_str */
declare aaa_cur cursor for
select distinct jyzdm from prehp99 where fzdm=@fzdm and dzdm=@dzdm and ch=@ch
open aaa_cur
fetch aaa_cur into @jyzdm
while @@sqlstatus!=2
begin
if @@sqlstatus=1
begin
raiserror 20001,"select fail"
return
end
select @jyzdm_str =@jyzdm_str+@jyzdm+','
print @jyzdm_str /*调试的时候什么也没显示 ??*/
fetch aaa_cur into @jyzdm
end
close aaa_cur
deallocate cursor aaa_cur
fetch del_cur into @fzdm,@dzdm,@ch
end
close del_cur
deallocate cursor del_cur
go
作者: zhangzhihua 发布时间: 2011-05-27
怎嘛没人回复我呢
作者: zhangzhihua 发布时间: 2011-05-27