select出来最后面的0总是被清掉,;号还在,求大神帮忙看一下

czfxwpy 2014-04-23 02:24:59

declare
@sc_no varchar(20),
@cus_noname varchar(40),
@mem_no varchar(30),
@pass_sl varchar(10)
declare c cursor for select * from #t
open c
fetch from c into @sc_no,@cus_noname, @mem_no, @pass_sl
while(@@fetch_status = 0)
begin
update #viobill_D set sc=cast(ltrim(rtrim(sc)) as varchar)
+cast(@sc_no as varchar)+' '+ cast(@cus_noname as varchar) +' '
+cast(left(@pass_sl,charindex('.',pass_sl)-1) as varchar)+' ;'
where mem_no = @mem_no
fetch next from c into @sc_no,@cus_noname, @mem_no, @pass_sl
end;
close c
deallocate c

select * from #viobill_D
order by sc_no,mem_no
...全文
176 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
czfxwpy 2014-04-23
  • 打赏
  • 举报
回复
大家还是一如既往的踊跃,好久没上来了,结贴散分
  • 打赏
  • 举报
回复
cast(@sc_no as varchar(20))
叶子 2014-04-23
  • 打赏
  • 举报
回复

declare @sc_no varchar(20),
    @cus_noname varchar(40),
    @mem_no varchar(30),
    @pass_sl varchar(10)
declare c cursor for select * from #t
    open c
    fetch  from c into @sc_no,@cus_noname, @mem_no, @pass_sl
    while(@@fetch_status = 0)
    begin
        update #viobill_D set sc=ltrim(rtrim(sc))
            +ltrim(@sc_no)+' '+ ltrim(@cus_noname) +' '
            +left(ltrim(@pass_sl),charindex('.',pass_sl)-1))+' ;'
        where mem_no = @mem_no
        fetch next from c into @sc_no,@cus_noname, @mem_no, @pass_sl
    end;
    close c
    deallocate c
 
select * from #viobill_D
order by sc_no,mem_no
这样试试...
叶子 2014-04-23
  • 打赏
  • 举报
回复
varchar 要定义长度,否则默认为varchar(1)

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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