我这样写的IF语句错在哪里呢?请大哥大姐们帮帮忙

gongfriend2 2005-06-19 01:59:49

declare @i_1 int,@i_2 int,@i_3 int,@i_4 int,@i_5 int,
@i_6 int,@i_7 int,@i_8 int,@i_9 int,@i_0 int,@k int,@a datetime,@b varchar,@c varchar
select @i_1=0,@i_2=0,@i_3=0,@i_4=0,@i_5=0,@i_6=0,@i_7=0,@i_8=0,@i_9=0,@i_0=0,@b='',@c='',@k=0

declare kk cursor for
select date_1,code,number_1 from sixone where code='5065'
open kk
fetch next from kk into @a,@c,@b
while @@fetch_status=0
begin
set @k=0
while @k<=6
begin
if substring(@b,@k+1,1)='0'
begin
set @i_0=@i_0+1
end
if substring(@b,@k+1,1)='1'
begin
set @i_1=@i_1+1
end
if substring(@b,@k+1,1)='2'
begin
set @i_2=@i_2+1
end

if substring(@b,@k+1,1)='3'
begin
set @i_3=@i_3+1
end

if substring(@b,@k+1,1)='4'
begin
set @i_4=@i_4+1
end

if substring(@b,@k+1,1)='5'
begin
set @i_5=@i_5+1
end

if substring(@b,@k+1,1)='6'
begin
set @i_6=@i_6+1
end

if substring(@b,@k+1,1)='7'
begin
set @i_7=@i_7+1
end

if substring(@b,@k+1,1)='8'
begin
set @i_8=@i_8+1
end

if substring(@b,@k+1,1)='9'
begin
set @i_9=@i_9+1
end
print substring(@b,@k+1,1)
set @k=@K+1

end
fetch next from kk into @a,@c,@b
end

close kk
deallocate kk
select @i_0 as '0',@i_1 as '1',@i_2 as '2',@i_3 as '3',@i_4 as '4',@i_5 as '5',@i_6 as '6',@i_7 as '7',@i_8 as '8',@i_9 as '9'

select * from sixone where code='5065'
...全文
91 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Well 2005-06-20
  • 打赏
  • 举报
回复
varchar這個要定義固定的定。如:varchar(20)這個要看具體的情況而定。

wangdehao 2005-06-19
  • 打赏
  • 举报
回复
没看明白楼主想干什么,游标嵌套while循环,效率会很差的
wangdehao 2005-06-19
  • 打赏
  • 举报
回复
@b varchar,@c varchar

varchar要改成varchar(8000),不然默认长度为1

edgethinking 2005-06-19
  • 打赏
  • 举报
回复
您这位大老问问题真有水平! :)

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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