1、coalesce函数:合并,coalesce(值1,值2,值3……),返回第一个不为null的值;
2、coalesce和ifnull的区别,ifnull只有两个参数,返回第一个不为null的参数
3、if和casewhen的区别:case 字段 when 条件 then 结果1 else 结果2 end
在score表中,sex为1表示男性,sex=0表示女性,查询时转换成汉字显示。
语句为:case score when 0 then '女' else '男' end
3、case when 条件表达式:千万不要忘记写end
CASE
WHEN condition THEN result1 ELSE result2
END
SELECT name,score,(CASE
WHEN score>=90 THEN '优秀'
WHEN score>=80 THEN '良好'
WHEN score>=60 THEN '及格'
ELSE '不及格' END) level
FROM score
select name,score,
sum(case when sex = 0 then 1 else 0 end) as '女生人数',
sum(case when sex = 1 then 1 else 0 end) as '男生人数',
sum(case when score >60 and sex = 0 then 1 else 0 end) as '女生及格人数',
sum(case when score > 60 and sex = 1 then 1 else 0 end) as '男生及格人数'
from score
4、和聚合函数一起使用:统计女生人数,统计男生人数
5、nvl函数:nvl(表达式1,表达式2),如果表达式1不为空,则返回表达式1,如果表达式1为空,则返回表达式2,表达式1和2必须是同一种数据类型,可以是数字型,字符型,和日期型,字段2
数字型:NVL(comm,1)
字符型:NVL(TO_CHAT(comm),‘No Commission’)
日期型:NVL(hiredate,‘31-DEC-99’)
例如: NVL(comm,1)
如果comm为空,就返回1。如果 comm 不为空(null),就返回表达式 comm的值;
6、decode函数:decode(条件,值1,返回值1,值2,返回值2,…值n,返回值n,缺省值)
比如,decode(Name,'其他其他',1,'其他',15,'其他的',16) as type,这个比casewhen更简单,但是casewhen更加灵活
7、navicat 下自动插入数据更新时间,设置的数据类型一定要是timestamp,函数可以是now,也可以是 current _stamp或者current_time
时间函数:
select now();
select CURRENT_DATE;
select CURRENT_TIME;
select CURRENT_TIMESTAMP;
select CURRENT_TIME(precision);
select CURRENT_TIMESTAMP(precision);
select LOCALTIME;
select LOCALTIMESTAMP;
select LOCALTIME(precision);
select LOCALTIMESTAMP(precision);
8、create table tmp_result_01 as select xxx把查询结果放入新表中