设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2544|回复: 6
打印 上一主题 下一主题

[求助]sql中case能不能象mdb中的select那样写

[复制链接]
跳转到指定楼层
1#
发表于 2005-11-6 17:52:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我看到sql的例子case的用法都是在一条sql语句中的,能不能象VB里的select case那样用法。如果不能,那用什么代替?

如下,不能通过,什么原因:

  case @KindID

   when 1 then update tblNumber set Shou1=0 where Number=@Number

   when 2 then update tblNumber set Shou2=0 where Number=@Number

   when 3 then update tblNumber set Shou3=0 where Number=@Number

   when 4 then update tblNumber set Shou4=0 where Number=@Number

   when 5 then update tblNumber set Shou5=0 where Number=@Number

   when 6 then update tblNumber set Shou6=0 where Number=@Number

   when 7 then update tblNumber set Shou7=0 where Number=@Number

   when 8 then update tblNumber set Shou8=0 where Number=@Number

   when 9 then update tblNumber set Shou9=0 where Number=@Number

  end
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2005-11-6 18:26:00 | 只看该作者
if (@KindID=1) begin

     update tblNumber set Shou1=0 where Number=@Number

end .......if (@KindID=9) begin

     update tblNumber set Shou9=0 where Number=@Number

end
3#
 楼主| 发表于 2005-11-6 18:31:00 | 只看该作者
我原来就是这样写的,那不是每个判断都得来一遍吗?我在end之前还有一个return,可又有问题了,有了return,这组判断之后的语句又无法执行了。
4#
发表于 2005-11-6 18:40:00 | 只看该作者
以下是引用tz-chf在2005-11-6 10:31:00的发言:



我原来就是这样写的,那不是每个判断都得来一遍吗?

我在end之前还有一个return,可又有问题了,有了return,这组判断之后的语句又无法执行了。



return是用在最后就行了,干嘛要在每一个End之前用它呢。你所有的条件都来自一个变量,在这个n组判断中,只会有一组是true

如果你要用case来判断,只能用如下结构:

declare @SqlStr nvarchar(200)

case @KindID

when 1 then set @SqlStr ='update tblNumber set Shou1=0 where [url=mailto:Number=@Number']Number=@Number'[/url]

.....

when 9 then set @SqlStr ='update tblNumber set Shou9=0 where [url=mailto:Number=@Number']Number=@Number'[/url]



end

exec sp_Executesql @sqlstr
5#
 楼主| 发表于 2005-11-6 19:31:00 | 只看该作者
上面的回答跟我在CSDN社区里的一样,解决问题了。谢谢!本来我的不爽是:每个判断都得来一遍
6#
 楼主| 发表于 2005-11-8 17:19:00 | 只看该作者
@Number写在里面不行,得这样when 1 then set @SqlStr ='update tblNumber set Shou1=0 where [url=mailto:Number='+@Number]Number='+@Number[/url]

7#
 楼主| 发表于 2005-11-19 17:23:00 | 只看该作者
4楼:then里好象不能写set....,只能是写在外面
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2025-1-25 10:58 , Processed in 0.105318 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表