• SQL – 10.流程函数


    空值处理函数

    ISNULL(expression,value) :如果expression不为空则返回expression,否则返回value。

    SELECT ISNULL(FName,'佚名') as 姓名 FROM T_Employee 

    Case 函数用法

    • (1)单值判断,相当于switch case
      CASE expression
      WHEN value1 THEN returnvalue1
      WHEN value2 THEN returnvalue2
      WHEN value3 THEN returnvalue3
      ELSE defaultreturnvalue
      END

    T_Customer表

    image

    例子

    select Fname,
    (
    case Flevel
    when 1 then '普通客户'
    when 2 then '会员'
    when 3 then 'vip'
    else '游客'
    end 
    ) as 客户类型
    from T_Customer

    image

    • (2)相当于if…else…else….
      CASE
      WHEN condition1 THEN returnvalue1
      WHEN condition 2 THEN returnvalue2
      WHEN condition 3 THEN returnvalue3
      ELSE defaultreturnvalue
      END

    例子:

    image

    image

    练习1:

    表中有A B C三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列。

     

    练习2:

    单号   金额
    Rk1     10
    Rk2     20
    Rk3     -30
    Rk4     -10
    将上面的表输出为如下的格式:
    单号   收入   支出
    Rk1     10       0
    Rk2     20       0
    Rk3      0        30
    Rk4      0        10

    练习3:

    有一张表T_Scores,记录比赛成绩
    Date                 Name   Score 
    2008-8-8          拜仁       胜
    2008-8-9          奇才       胜
    2008-8-9          湖人       胜
    2008-8-10        拜仁       负
    2008-8-8          拜仁       负
    2008-8-12        奇才       胜
    要求输出下面的格式:
    Name   胜     负
    拜仁   1 2
    湖人   1 0
    奇才   2 0
    数据和参考答案见备注
    注意:在中文字符串前加N,比如N’胜’

    答案:

    1.

    select (case when a>b then a else b 
    end),(case when b>c then b else c end ) 
    from t 

    2.

    select ID,(case when money <0 then 0 else money end) AS 收入,(case when money >0 then 0 else abs(money) end) as 支出  from T_Bill
    

    image

    3.

    select Name,sum(case when score ='胜' then 1 else 0 end) as '胜',
    sum(case when score = '负' then 1 else 0 end) as '负' 
    from T_bascketball 
    group by name

    image

  • 相关阅读:
    在PHP中截取字符串
    SQL查看一张表中是否存在记录
    最多两位小数,如123.45的转换结果为:壹百贰拾叁元肆角伍分
    SQL将金额转换为汉子
    SQL 汉字转换成拼音首字母 首字母查
    SQL生成随机数
    Linux gsoap2.6 webservices
    cxGrid的一些使用方法
    不修改forms.pas单元就可以去掉MDI窗口的滚动条
    今天,我种下了一朵小蓝花
  • 原文地址:https://www.cnblogs.com/tangge/p/2489253.html
Copyright © 2020-2023  润新知