ms sql server if else语句可不可以用 switch 语句代替?

lxiron 2009-10-19 09:27:48
如下,存储过程可不可以改为 Switch 结构的存储过程,还有 if-else语句和 switch 语句那个效率较高。
ALTER PROCEDURE dbo.sp_getStatisticInfo
/*
(
@parameter1 int = 5,
@parameter2 datatype OUTPUT
)
*/
@ID char(3),
@StartTime varchar(20),
@EndTime varchar(20)

AS
if(@ID='1')
begin
select * from tb_dailyCheck where f_startTime between @StartTime and dateadd(day,1,@EndTime)
end
else if(@ID='2')
begin
select * from tb_shiftCheck where f_startTime between @StartTime and dateadd(day,1,@EndTime)
end
else if(@ID='3')
begin
select * from tb_weeklyM where f_startTime between @StartTime and dateadd(day,1,@EndTime)
end
else if(@ID='4')
begin
select * from tb_doubleWeeklyM where f_startTime between @StartTime and dateadd(day,1,@EndTime)
end
else if(@ID='5')
begin
select * from tb_monthlyM where f_startTime between @StartTime and dateadd(day,1,@EndTime)
end
else if(@ID='6')
begin
select * from tb_quarterlyM where f_startTime between @StartTime and dateadd(day,1,@EndTime)
end
else if(@ID='7')
begin
select * from tb_quarterlyC where f_startTime between @StartTime and dateadd(day,1,@EndTime)
end

RETURN
...全文
2166 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
liaoning4 2011-01-20
  • 打赏
  • 举报
回复
dawugui 2009-10-19
  • 打赏
  • 举报
回复
同意楼上的case when
--小F-- 2009-10-19
  • 打赏
  • 举报
回复
if....else 

case when
navy887 2009-10-19
  • 打赏
  • 举报
回复
没有SWITCH的
SQL77 2009-10-19
  • 打赏
  • 举报
回复
像这样的判断,CASE WHEN与IF应该差不多
SQL77 2009-10-19
  • 打赏
  • 举报
回复
没有SWITCH,有CASE WHEN
sgtzzc 2009-10-19
  • 打赏
  • 举报
回复
用case when

22,210

社区成员

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

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