case语句问题

zengyong123 2010-09-10 10:19:48
请问在查询编辑器中执行下面这段sql语句问什么会出错哈?
declare @name int
set @name='test'
case @name
when 'test' then
print '111111'
when 'aaa' then
print '333333'
else
print '555555'
end
...全文
157 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
whb147 2010-09-12
  • 打赏
  • 举报
回复
case 语句不能单独使用

只能跟select 使用
如果要用分支只能用if
tlx20093A 2010-09-12
  • 打赏
  • 举报
回复
1 字符类型有误
2 case中可不用print
3 查询中没有源数据表
--看联机丛书 就明白了
sanny_txx 2010-09-11
  • 打赏
  • 举报
回复
很明显,test是字符类型,name 是整型,两者互换有误啊
declare @name int
set @name='test'
hovy_yang 2010-09-11
  • 打赏
  • 举报
回复
declare @name varchar(10)
set @name='test'
select
case @name
when 'test' then '111111'
when 'aaa' then '333333'
else '555555'
end

case的用法、不用加print,另外定义字符串不能用int型
alexanda2000 2010-09-11
  • 打赏
  • 举报
回复
SQL里的case跟别的程序设计语言的case是不一样的,别的语言里case可以用来选择程序执行的分支,但SQL里的case只能做返回数据的选择。
hao1hao2hao3 2010-09-10
  • 打赏
  • 举报
回复

declare @name varchar(20)
set @name='test'
if @name ='test'
print '111111'
else if @name ='aaa'
print '333333'
else
print '555555'



jwdream2008 2010-09-10
  • 打赏
  • 举报
回复
1楼+2楼=错误信息
yuyizhao198 2010-09-10
  • 打赏
  • 举报
回复
declare @name int
set @name='test'
定义的是int 怎么能赋值为char
-》declare @name varchar(10)
liangCK 2010-09-10
  • 打赏
  • 举报
回复
结构化语句用if

700

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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