前言导读:
本章是对SQL语句基础功能中,一些功能用法的扩展使用的总结,都是实际工作中一些经验的积累.
--1 函数处理+列计算+列改名 select 函数(列) + 列名 AS 新列名 from 表名 --2 数据标定+函数处理+列计算+列改名 select CASE WHEN 函数(列) + 列 > 80 THEN '设定字符1' ELSE '设定字符2' END as 新列名 FROM 表名
SELECT 列1名 , COUNT(求数列) as 次数 , SUM(求和列) as 总额 FROM 表名 GROUP BY 列1名
注意:()和’’对应数字和字符的使用,两个关键字的查询内容都可以是字符或者数字 注意:默认都是字符型数据,如果要进行计算,改成数值型数据 --1 in : ①可以多个查询, ②可以查询字符和数字, ③能一起查,④内容完全对应 select * from 体检信息 where 姓名 IN ('姓名1','姓名2') select * from 电话号码 where 姓名 IN ('134','135454') --2 like: ①可以多个查询, ②可以查询数字, ③但是要分列查询, ④内容可以模糊查询 select * from 体检信息 where 姓名 like '%姓%' or 家属年龄 like '%48%'
--第一步:可乐和雪碧同时存在的数据 where 列名 like’%可乐%’ and 列名 like’%雪碧%’ --第二步:显示可乐的数据和显示雪碧的数据 where 列名 like’%可乐%’ or 列名 like’%雪碧%’ --第三步:在显示可乐和雪碧的数据同时去掉有牙膏字样的数据 where 列名 like’%可乐%’ or 列名 like’%雪碧%’ and 列名 not like’%牙膏%’ :
--如果空白格中无数据:但是又不是null 那就代表空白格中的数据为0, --如果是数值列:可以直接使用where 年龄 !='0' 姓名列不为0的列 --如果是字符的列:就可以用where 姓名 like '%_%' 姓名列不为空的列
--1、函数在select中使用:建立as列名,后接where查询,不能使用as列名,需用完整函数表达式 --2、函数在where中使用:单独在where中使用必须完整布尔表达式 --3、在order by中使用:可以使用as列名进行排序 --4、在case when中使用:出现在条件表达式中,而case语句出现在select中 --5 函数组合说明:函数结果数字+比较范围 --函数结果数字+计算数字 --函数使用位置说明: --函数在select中格式 :select 函数名 (列名) from 表名 --函数在where中格式 : select * from 表名 where 函数名(列名)
说明:where位置的子查询是最常用的. --1单句from位置,具体用途待研究 select * from (select 统筹支付,count(*) 次数 --门诊结算金额出现频率前20名 from T_医院门诊结算单_西丰 where 统筹支付>0 group by 统筹支付 order by 次数 desc) where rownum<21; --2union位子 双句子查询,两句结果合并 select count(*) from (select 身份证号 from T_医院门诊结算单_西丰 group by 身份证号 having sum(统筹支付)>0 union --合并去重 select 身份证号 from T_医院住院结算单_西丰 group by 身份证号 having sum(统筹支付)>0); --3 from位置 连接查询带子查询 select * from (查询语句) join (查询语句) on 条件连接 --4 select位置的子查询 select *,(select 想要在父表显示的列名1 from 子表1 where 父表.相同列 = 子表1.相同列 ) as 表1 , (select 想要在父表显示的列名2 from 子表2 where 父表.相同列 = 子表2.相同列 ) as 表2 from 父表 --格式说明:新增列子查询中:select 只能显示一列信息,多了报错,如果想显示多列可以再写一个,where 中设定的条件就是两个表连接的内容 --重点说明:如果是新增的列参与运算,不能用as后的名字,需要用新增的运算格式
此资源有PDF目录版,如想获得请扫码关注右侧公众号自动获取