【发布时间】:2017-07-05 23:26:10
【问题描述】:
尝试在 SQL 2008R2 中创建存储过程。 我有两个参数输入,根据它们的输入,理想情况下将另一个参数的值设置为四个值之一。试图确定这是否可以做到,如果可以,将其放在 SP 中的最佳位置是什么。 这是我的代码的精简版。
Declare @FWIdle as bYN, @NewComp as bYN
set @FW = 'Y'
set @NEW = 'Y'
select Case(
when w.WearRate <0.400 then round((- 50*w.WearRate+112.5),2
when w.WearRate <0.450 then round((-100*w.WearRate+132.5),2)
when w.WearRate <0.550 then round((- 50*w.WearRate+110.5),2)
else 52.5 END as Score
from EMWear w
希望将所有 w.WearRate 替换为 @Wear 并根据两个参数的组合将 @Wear 设置为视图中四个可能的字段之一。
比如:
if @FW = 'Y' and @NEW = 'N' then @Wear = w.FWRate else
if @FW = 'N' and @NEW = 'Y' then @Wear = w.NewRate else
if @FW = 'Y' and @NEW = 'Y' then @Wear = w.FWNewRate else
@Wear = w.WearRate
由于我有 150 多行代码来处理这个速率,我宁愿不必编写此代码 4 次来获得所需的值。任何有关我如何编写并保持干净/简单的帮助将不胜感激。
【问题讨论】:
标签: sql-server-2008 stored-procedures parameters