• 9周学习笔记


    学习笔记

    一.聚合

    部分常用聚合函数

    1.COUNT():统计指定列不为NULL的记录行数;

    2.MAX():计算指定列的最大值,如果指定列是字符串类型,那么使用字符串排序运算;

    3.MIN():计算指定列的最小值,如果指定列是字符串类型,那么使用字符串排序运算;

    4.SUM():计算指定列的数值和,如果指定列类型不是数值类型,那么计算结果为0

    5.AVG():计算指定列的平均值,如果指定列类型不是数值类型,那么计算结果为0

    6.STDEV([all | distinct ] expression):计算标准偏差值,这里的expression必须是一个数值表达式,不允许使用聚合函数和子查询。表达式的值是精确或近似数值类型,但不包括bit数据类型。将忽略null值。

    7.VAR():计算方差

    8注意:

    所有的聚合方式使用都是 函数名(字段) 对这一个字段进行聚合.

    有一个特列那就是count(*) 可以使用*,也可以使用字段,通常我们使用count1)来优化查询

    聚合函数如果遇到null值的话,就会跳过去,不计算

    一般在书写sql的是时候很多时候会误将聚合函数放到where后面9.作为条件查询,这样会出现错误,原因在于:
    having放在group by 的后面;group by 后面只能放非聚合函数的列;where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组

    10.大设计相关示例代码

    Select

    M.valid

    ,Max(m.price)

    ,min(m.price)

    From tb_medicine as m

    Group by m.valid

    Having year(m.valid)between 2020 and 2018

    二.分支

    注意格式Case when...then...

    when...then...

    ...end

    大设计药品表(tb_medicine)中有一列为分类(sort)数据类型定义为bit ,当值为1则是中药,0则是西药

    SELECT

    m.No

    ,m.Name

    ,CASE m.sort

    WHEN 1 THEN '中药'

    WHEN 0 THEN '西药'

    END AS sort

    FROM

    Tb_medicine AS m;

    三.格式化

    这一部分学习对空值的处理,常涉及强制类型转换convert函数的使用

    大设计中一项查询功能为 :查询药品管理员的联系方式,若为空值则显示尚无联系方式

    Select

    P.name

    ,rtrim(isnull(p.tel,’’) )as tel

    From tb_people as p

    四.日期

    常用日期方法有

    1.DATEDIFF 返回跨两个指定日期的日期边界数和时间边界数

    (常根据生日计算年龄)

    大设计中查询药品出入库时间差

    Select

    datediffdayi.date,o.date

    From tb_in as i

    Join tb_out as o on i.MNO=o.MNO

    DATENAME  返回表示指定日期的指定日期部分的字符串

    Select

    Datename(year,i.date)as 入库年份

    datename(week,i.date)as

    From tb_in as i

    2.DATEPART 返回表示指定日期的指定日期部分的整数。

    3.DATEADD   返回给指定日期加上一个时间间隔后的新值

    查询药品的有效期

    Select

    Dateadd(year,2,m.date)

    From tb_medicine as m

    4.GETDATE以标准内部格式返回当前系统日期和时间

    5.DAY 指定某天的’日’部分

    MONTH 指定某天的’月’部分

    YEAR指定某天的’年’部分

  • 相关阅读:
    H3C ER6300 + 两台 H3C S5120 组网举例
    H3C S5120-52P-WiNet交换机配置
    H3C S5120清除console口密码
    光纤简介
    Windows server 2008 R2 多用户远程桌面
    AutoIt 软件自动化操作
    windows server 2008 R2 计划任务备份系统
    AD域部署使用bginfo软件
    使用WSL吧
    Could not load file or assembly……
  • 原文地址:https://www.cnblogs.com/hualalalala/p/7795832.html
Copyright © 2020-2023  润新知