1.通用函数
a)对null处理
nvl(exp1,exp2):如果exp1 为null 显示 exp2的值
exp1 不为null 显示exp1
nvl2(exp1,exp2,exp3):
如果exp1 不为 null 显示为exp2的值
exp1 为 null 显示 exp3的值
b)分支判读
case:
i)如果做等值判断
case 列|表达式
when 值 then 结果
....
else 结果
end
示例:\
select
ename,
case deptno
when 10 then '研发'
else '其他'
end m
from emp;
ii)不等值判断
case
when 条件 then 结果
....
else 结果
end
注意:条件 先判断小范围 再 大范围
select
ename,sal,
case
when sal>=5000 then '高'
when sal>=3000 then '中'
else '低'
end m
from emp;
decode:就是case 等值判断的代替
decode(列,值1,结果1,值2,结果2,结果3)
case 列
when 值1 then 结果1
when 值2 then 结果2
else 结果3
end
-------------------------------------
1.多行函数\分组函数\聚合函数
max
min
count
sum
avg
2.分组函数 自动忽略null值
如果不希望忽略 null 值 必须对null 使用 nvl函数处理
3.group by 表示 分组的依据
group by 中的内容不一定在 select子句中出现
但是 select子句中出现的列 必须在group by 中出现
或者 放在分组函数内部
尽量先使用where 筛选满足条件的数据,后再分组统计
2.聚合数据:查询天气预报
a)对null处理
nvl(exp1,exp2):如果exp1 为null 显示 exp2的值
exp1 不为null 显示exp1
nvl2(exp1,exp2,exp3):
如果exp1 不为 null 显示为exp2的值
exp1 为 null 显示 exp3的值
b)分支判读
case:
i)如果做等值判断
case 列|表达式
when 值 then 结果
....
else 结果
end
示例:\
select
ename,
case deptno
when 10 then '研发'
else '其他'
end m
from emp;
ii)不等值判断
case
when 条件 then 结果
....
else 结果
end
注意:条件 先判断小范围 再 大范围
select
ename,sal,
case
when sal>=5000 then '高'
when sal>=3000 then '中'
else '低'
end m
from emp;
decode:就是case 等值判断的代替
decode(列,值1,结果1,值2,结果2,结果3)
case 列
when 值1 then 结果1
when 值2 then 结果2
else 结果3
end
-------------------------------------
1.多行函数\分组函数\聚合函数
max
min
count
sum
avg
2.分组函数 自动忽略null值
如果不希望忽略 null 值 必须对null 使用 nvl函数处理
3.group by 表示 分组的依据
group by 中的内容不一定在 select子句中出现
但是 select子句中出现的列 必须在group by 中出现
或者 放在分组函数内部
尽量先使用where 筛选满足条件的数据,后再分组统计
2.聚合数据:查询天气预报