• 【SQL】CASE与DECODE


    1. case..when case..when语句用于按照条件返回查询结果,如当我们想把emp表的工资按照多少分成几个不同的级别,并分别统计各个级别的员工数。SQL语句如下:
    select (case
             when sal <= 1000 then
              '1'
             when sal > 1000 and sal <= 2000 then
              '2'
             when sal > 2000 and sal <= 3000 then
              '3'
             when sal > 3000 and sal <= 4000 then
              '4'
             else
              '5'
           end) as Levels,
           count(*)
      from emp
     group by (case
                when sal <= 1000 then
                 '1'
                when sal > 1000 and sal <= 2000 then
                 '2'
                when sal > 2000 and sal <= 3000 then
                 '3'
                when sal > 3000 and sal <= 4000 then
                 '4'
                else
                 '5'
              end) order by levels;
    其中,when后可直接跟确定的条件,也可以像上面一样跟表达式。当我们想要使用group..by分组时,要把case..when整个语句放在group by 子句中,不能使用如上面case..when语句的别名"Levels"。


    2. decode函数
    (1)decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值)
    当条件等于值1,则返回值2;当条件等于值2,则返回值2...
    (2)decode(字段或字段的运算,值1,值2,值3)

    当字段或字段的运算等于值1,则返回值2,否则返回值3。

    如:有表如下


    我们想得到如下的查询结果:


    SQL语句如下:

    select country,decode(sex,'1','男','2','女') as sex,population from test;

  • 相关阅读:
    二级菜单
    侧面导航
    QFileDialog文件保存
    GitHub for window
    Qt学习事件/信号
    开始RTThread之旅
    Qt事件过滤器
    LPC1768开发板液晶问题解决
    用QSplitter分裂器实现QTextEdit窗口大小的变化
    Qt之串口编程使用事件驱动来触发接收数据
  • 原文地址:https://www.cnblogs.com/NextAction/p/7366621.html
Copyright © 2020-2023  润新知