闇人
2021-08-05 14:50
采纳率: 33.3%
浏览 35

mysql新增字段,字段的值为分段查询所得

查询新增字段(STANDARD),STANDARD字段是按电影评分( SCORE)来分段,最终结果显示的字段为:NAME,SCORE,STANDARD。
分段规则如下:
评分值为1-10分(1-2 很差,3-4 较差,5-6 还行,7-8 推荐,9-10 力荐)。
默认排序方式输出前20条数据。
要怎么写命令?

  • 好问题 提建议
  • 收藏

3条回答 默认 最新

  • qq_25376897 2021-08-05 15:38
    已采纳
    
    SELECT
        *
    FROM
        (
            SELECT
                NAME,
                SCORE,
                (
                    CASE
                    WHEN SCORE BETWEEN 1 AND 2 THEN
                        '很差'
                    WHEN SCORE BETWEEN 3 AND 4 THEN
                        '较差'
                    WHEN SCORE BETWEEN 5 AND 6 THEN
                        '还行'
                    WHEN SCORE BETWEEN 7 AND 8 THEN
                        '推荐'
                    WHEN SCORE BETWEEN 9 AND 10 THEN
                        '力荐'
                    END
                ) STANDARD -- CASE WHEN 分组
            FROM
                A     -- 这里改成你的表名
            ORDER BY SCORE DESC  -- 这里按SCORE排序,可以改成你需要的排序方式
        ) X  -- X只是一个别名,指代前面排序好的结果
    LIMIT 0,20 -- 取前20条
    
    已采纳该答案
    评论
    解决 1 无用
    打赏 举报
  • 要分2步操作:
    1.先创建字段,用alter table 命令;
    2.使用update更新。

    评论
    解决 无用
    打赏 举报
  • CSDN专家-微编程 2021-08-05 15:23

    应该是一个复杂查询语句,select.....
    先排序再设置输出数量20 order by score desc limit 20
    分段规则如下:评分值为1-10分(1-2 很差,3-4 较差,5-6 还行,7-8 推荐,9-10 力荐)
    你可以设置分区,如果没学的话就算了,使用动态sql给STANDARD赋值

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题