1、SQL Server 数据检索 简 介,佛山市中医院 陈子星,SELECT 子句,1. 从数据表中挑选出要检索的字段。例如:prn 病案号, times 次数, name 姓名, rydate 入院日期, cydate 出院日期 ba2.prn 病案号,ba2.times 住院次数,ba4.docname 主刀医生,SELECT 子句,2.使用其他函数对要检索的字段进行计算:(1)计算两个日期的时间差距用函数,DATEDIFF(日 期的哪一部分 ,开始日期,结束日期) D:天,M:月,Y:年例如: DATEDIFF(D,rydate,cydate) (2)计算实际总例数, COUNT(*) *
2、:表中记录数,SELECT 子句,(3)计算字段的平均值:AVG(字段名)例如:AVG(days) 对天数求平均 (4)最大值:MAX(字段名)最小值:MIN(字段名)总计:SUM(字段名)(5)得到字符串左边一定数量的字符:LEFT得到字符串右边一定数量的字符:RIGHT例如: LEFT (AVG(days),4) 平均住院天数,FROM 子句,注明SELECT子句中要检索的字段来自于哪一个数据表。例如:FROM ba2 FROM ba2,ba3,icd10,WHERE 子句,是对要检索的字段设置条件可以配合使用的语句有下列几种:(1) and 逻辑与 (2) or 逻辑或(3) not 逻
3、辑非(4) LIKE 用指定字符串寻找记录(5) BETWEEN 给定条件之间的记录都符合要求,GROUP BY子句,依照设置的条件,组合成数个“组”,并且让SELECT子句中的SUM、MIN、MAX、COUNT、AVG产生作用。例如:GROUP BY zydoct, cydept 在计算住院医师工作量时,以住院医师和出院科别为单位计数( COUNT(*),ORDER BY子句,将检索的结果排序。默认值为升序或从小到大排序;DESC:以降序或从大到小排序。例如:ORDER BY 经管人数 DESC 在计算住院医师工作量时,以住院医师经管人数由多到少排序。,SELECT “程序”,SELECT选择要检索的字段FROM指定字段来源的数据表WHERE设置检索条件上面这三行合起来称为一个“程序”,其作用是从(FROM)数据“表”中挑出( SELECT)需要的字段,按设置条件( WHERE)检索出来。缺一不可。,应用实例,当入院科别不等于出院科别,而漏输转科时: SELECT prn 病案号, times 次数, rydate 入院日期,rydept 入院科别,cydept 出院科别, zkdept 转科科别 FROM ba2WHERE cydate BETWEEN 2002/12/26 and 2006/05/25 and .zkdept= and rydept cydept,谢 谢!,