黑马程序员技术交流社区

标题: 遇到这么一个sql问题 如题 [打印本页]

作者: 聂广强    时间: 2013-7-12 14:57
标题: 遇到这么一个sql问题 如题
本帖最后由 聂广强 于 2013-7-25 14:59 编辑

现有积分表『levelName varchar(50),NeedPoints int』写一条sql语句 求出该会员所属的等级名, 某会员有×积分, 积分的等级表数据为:
等级一 100


等级二 200
等级三 300
这个题只有一张表 哪个sql语句如何写才能实现呢?

作者: wedge    时间: 2013-7-12 15:04
应该还有一张会员积分表才靠谱吧~~~
作者: 聂广强    时间: 2013-7-12 15:25
wedge 发表于 2013-7-12 15:04
应该还有一张会员积分表才靠谱吧~~~

只有这一张表  这个是我面试题中最坑的一道 完全没有思路
作者: wedge    时间: 2013-7-12 15:30
某会员积分为x?

作者: wedge    时间: 2013-7-12 15:34
select levelName from 积分表 where NeedPoints<=x and NeedPoints>x-100;

这样靠谱吗?比如101分就是等级1了~~~大于等于等级分并且小于等级分+100
作者: wedge    时间: 2013-7-12 15:34
select levelName from 积分表 where NeedPoints<=x and NeedPoints>x-100;

这样靠谱吗?比如101分就是等级1了~~~大于等于等级分并且小于等级分+100
作者: 聂广强    时间: 2013-7-12 15:35
wedge 发表于 2013-7-12 15:30
某会员积分为x?

会员积分不确定
作者: changweihua    时间: 2013-7-12 15:57
用case进行判断
作者: zhangcheng5468    时间: 2013-7-12 16:09
楼上正解,考察的是Case语句
作者: 彭家贰小姐    时间: 2013-7-12 16:12
1.数据库建表

2.造些数据

3.sql
SELECT  levelName ,
        CASE WHEN NeedPoints < 100 THEN N'等级一'
             WHEN NeedPoints >= 100
                  AND NeedPoints < 200 THEN N'等级二'
             ELSE N'等级三'
        END '等级'
FROM    dbo.level




作者: 马晓凤    时间: 2013-7-12 18:16
declare @x int
set @x=150
SELECT  
        CASE WHEN @a <100 then '新手'
        WHEN @a >=100 AND @a < 200 THEN '等级一'
             WHEN @a >= 200
                  AND @a < 300 THEN '等级二'
             ELSE '等级三'
        END




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2