zoukankan      html  css  js  c++  java
  • sql中case when then的用法

    table表中2个字段

    age name

    20 aa

    30 bb

    35 cc

    40 dd

    50 ee

    70 ff

    使用SQL语句查询得到结果如下:

    年龄段 数目

    青年 1

    中年 3

    老年 2

    注:年龄小于30为青年,31到49为中年,50以上为老年。

    请问SQL语句怎么写?
    好评率:100%
    给你一个参考。我相信你看了后就知道应该如何处理了。

    有表student(id,name,score)依据分数列(score)每10分为一段,查询每段分数的人数。


    SELECT a, COUNT(*)
    FROM (SELECT a = CASE WHEN score >= 0 AND
    score < 10 THEN '0-9' WHEN score >= 10 AND
    score < 20 THEN '10-19' WHEN score >= 20 AND
    score < 30 THEN '20-29' WHEN score >= 30 AND
    score < 40 THEN '30-39' WHEN score >= 40 AND
    score < 50 THEN '40-49' WHEN score >= 50 AND
    score < 60 THEN '50-59' WHEN score >= 60 AND
    score < 70 THEN '60-69' WHEN score >= 70 AND
    score < 80 THEN '70-79' WHEN score >= 80 AND
    score < 90 THEN '80-89' WHEN score >= 90 AND
    score < 100 THEN '90-99' ELSE '100' END
    FROM student) a
    GROUP BY a
    提问人的追问   2009-12-29 09:59
    我研究了下,还是没写出来,我得到的结果是:

    年龄段 无列名

    青年 1

    中年 1

    中年 1

    中年 1

    老年 1

    老年 1

    语句是select '年龄段'=(case when age<30 then '青年' when age>=30 and age<50 then '中年' else '老年' end),count(*) from student group by age

    ,请问下怎么改啊? 回答人的补充   2009-12-29 10:12
    见下语句,见图参考:

    SELECT a, COUNT(*)
    FROM (SELECT a = CASE WHEN age < 30 THEN '青年' WHEN age >= 30 AND
    age < 50 THEN '中年' WHEN age >= 50 THEN '老年' END
    FROM TABLE2) a GROUP BY a

  • 相关阅读:
    明治meltykiss食后感
    纪念我11月12日,广州移动一面
    《孔XXXX》
    UDP编程 System.Net.Sockets.SocketException (0x80004005): 在其上下文中,该请求的地址无效。
    《诈欺猎人》
    MonkeyImage模块功能详解
    MonkeyDevice模块功能详解
    MonkeyRunner及MonkeyRunner模块简介
    MonkeyServer的使用及自动化
    Monkey工具脚本功能详解
  • 原文地址:https://www.cnblogs.com/yellowapplemylove/p/2021525.html
Copyright © 2011-2022 走看看