关于存储过程语法的问题,答对了即刻给分。

caijf 2002-05-14 10:19:43
我写了如下一存储过程,但不知道错在什么地方,
create proc base_tj_destroy
@type int,@name char(20),@starttime datetime,@endtime datetime
as
case @type of
0: begin
select * from change
where (part='固定设备') and (destroy_date>=@starttime)
and (destroy_date<=@endtime)
end
1: begin
select * from change
where (part='固定设备')and(destroy_date>=@starttime)
and (destroy_date<=@endtime) and(usedept_num=@name)
end
2: begin
select * from change
where (part='固定设备')and(destroy_date>=@starttime)
and (destroy_date<=@endtime) and(borrow_people=@name)
end
end
不知道是不是在存储过程中不能用case语句,但我该用if语句来做判断,似乎也不行。请高手指点...
...全文
65 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
KDMYDREAM 2002-05-14
  • 打赏
  • 举报
回复
case语句不行,具体可使用if语句!
有问题何以Email联系:lsf@163.net
mrlining 2002-05-14
  • 打赏
  • 举报
回复
用case expression when then ........
你查一下联机帮助。
caijf 2002-05-14
  • 打赏
  • 举报
回复
哦,我试一下
warning 2002-05-14
  • 打赏
  • 举报
回复
不是子句,是函数
楼上说的对,不能这样用case,要用if
warning 2002-05-14
  • 打赏
  • 举报
回复
不是子句,是函数
楼上说的对,不能这样用case,要用if
日总是我哥 2002-05-14
  • 打赏
  • 举报
回复
case子句好像不能这样用吧~~


create proc base_tj_destroy
@type int,@name char(20),@starttime datetime,@endtime datetime
as

if @type = 0
select * from change
where (part='固定设备') and (destroy_date>=@starttime) and (destroy_date<=@endtime)
else if @type = 1
select * from change
where (part='固定设备')and(destroy_date>=@starttime)
and (destroy_date<=@endtime) and(usedept_num=@name)
else if @type = 2
select * from change
where (part='固定设备')and(destroy_date>=@starttime)
and (destroy_date<=@endtime) and(borrow_people=@name)
warning 2002-05-14
  • 打赏
  • 举报
回复
case @type when 0 then .....
when 1 then .....
else .... end
Yang_ 2002-05-14
  • 打赏
  • 举报
回复
没有CASE ... OF 语法:

create proc base_tj_destroy
@type int,@name char(20),@starttime datetime,@endtime datetime
as
if @type = 0
begin
select * from change
where (part='固定设备') and (destroy_date>=@starttime)
and (destroy_date<=@endtime)
end
if @type = 1
begin
select * from change
where (part='固定设备')and(destroy_date>=@starttime)
and (destroy_date<=@endtime) and(usedept_num=@name)
end
if @type = 2
begin
select * from change
where (part='固定设备')and(destroy_date>=@starttime)
and (destroy_date<=@endtime) and(borrow_people=@name)
end


34,575

社区成员

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

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