有如下字段 
最高分    最低分    等级 
100       90        优
90        60        合格
60        0         不合格
 90<=得分<100  为优。
 60<=得分<90   合格.
 0<= 得分<60   不合格。现在有一个分数  75 。要求去查等级。。
这个SQL怎么写?合格标准不定.可能是60 也有可能70 这个看数据库里面的值了.

解决方案 »

  1.   

    select 等级 from [Table] where @得分>=最低分 and @得分<最高分
      

  2.   

    declare @a table(最高分 int, 最低分 int, 等级  varchar(20))
    insert @a select 100 ,90 ,'优'
    union all select 90 ,60 ,'合格'
    union all select 60 ,0 ,'不合格'
    declare @得分 int
    set @得分=75select 等级 from @a where @得分>=最低分 and @得分<最高分
    /*
    等级                   
    -------------------- 
    合格(所影响的行数为 1 行)
    */
      

  3.   

    CREATE TABLE #T(最高分 int,    最低分  int,  等级 nvarchar(20))
    INSERT INTO #T
    SELECT 100       ,90        ,'优' UNION ALL
    SELECT 90        ,60        ,'合格' UNION ALL
    SELECT 60        ,0         ,'不合格'DECLARE @i int
    SET @i=75
    SELECT 等级 FROM #T WHERE @i BETWEEN 最低分 AND 最高分
    DROP TABLE #T
      

  4.   

    select 等级 from 等级表 where 最高分>75 and 最低分<=75
      

  5.   

    太急没有看清条件:CREATE TABLE #T(最高分 int,    最低分  int,  等级 nvarchar(20))
    INSERT INTO #T
    SELECT 100       ,90        ,'优' UNION ALL
    SELECT 90        ,60        ,'合格' UNION ALL
    SELECT 60        ,0         ,'不合格'DECLARE @i int
    SET @i=75
    SELECT 等级 FROM #T WHERE @i >= 最低分 AND @i<最高分
    DROP TABLE #T
      

  6.   

    create  proc kkk(@score int)
    as
    begin
    declare @s varchar(10)
    if @score>=90 and @score <=100 
    set @s='優'else
    if @score >=60 and @score<=89 
    set @s='合格'
    else
    set @s='不合格'
    select @s
    end
    exec kkk 80---------- 
    合格(1 row(s) affected)