Tb_Grade表
GradeName,Si_Min,Si_Max
L04        O.023 0.0456
L08        0.457 0.88
...........还有其它数据本人现在想写一个存储过程定义一个参数@Si 然后给@Si赋值,然后把@Si于Tb_Grade表中的Si_Min,Si_Max比较,如果@Si 刚好在某条记录的最小值(Si_Min)于最大值(Si_Max)之间,把该条记录的GradeName(等级名称)取出来。
请问该存储过程什么写!本来在线等

解决方案 »

  1.   

    ---Try
    ---创建存储过程
    Create Procedure SP_Tb_Test
           @si Decimal(10,4)
    As
      Set NoCount On 
      Begin 
         Select * From (
             Select Case When @si>Si_Min And @si<Si_Max Then GradeName End As GradeName 
             From Tb_Grade) As T
         Where GradeName Is Not Null
      End
    Go---调用存储过程
    Exec SP_Tb_Test 0.5
      

  2.   

    declare @si numeric(10,4)
    if exists(select * from Tb_Grade where @si between si_min and si_max)
       select gradename from tb_grade where @si between si_min and si_max
      

  3.   

    declare @si numeric(10,4)
    set @si=值        --给@si赋值
    if exists(select * from Tb_Grade where @si between si_min and si_max)
    select gradename from tb_grade where @si between si_min and si_max
      

  4.   

    select *
    from Tb_Grade
    where @ > si_min and @ <= si_max