--DISTINCT 关键字可从查询结果中清除重复行,distinct去除整条重复的行,作用于后面所有的字段
--select distinct deptno from emp;
--(select distinct(t.name) from com_dictionary t where t.type='USAGE' and t.code = r.usage_code)---子查询需要内嵌去重;
--select distinct deptno,job from emp;
--order by 子句对查询结果进行排序,默认从小到大排序 asc(升序排列) desc(降序排列)
--select * from emp order by deptno asc; --单个字段排序
select * from emp order by deptno desc;
select * from emp order by deptno asc,hiredate desc;--多个字段排序
--select ename "姓 名",job 工作,sal*12+ nvl(comm,0) 年薪 from emp order by 年薪 desc;--以别名排序
--NVL(column_name,value_if_null),Column_name是实际的列值,value_if_null是如果列为NULL,返回该值。
注意:value_if_null类型要和column_name的类型一致。
Decode(a.xzdm,’’-”,”0”,””,”0”, a.xzdm)-----“-”替换为0.空替换为0.其他的原来数字;(使用’ ’)
--在SELECT语句中使用DISTINCT可以减少这些重复列。
Character-Manipulation 函数:****
常用函数****
--Sysdate:获取系统时间函数
Select sysdate from dual;
--Add_months:指定日期增加(减少)月份的时间
Select add_months('24-10月-15', 12) from dual;
Select add_months(sysdate, 10) from dual;
--Months_between:返回两个时间之间的月份的差
Select months_between(sysdate, '24-12月-15') from dual;
--Last_day:返回本月最后一天
Select last_day(sysdate) from dual;
--Next_day:下一个日期是什么时候
Select next_day(sysdate, '星期六') from dual;
--To_date(日期, 日期格式):将一个日期按照指定的格式转成一个日期数据;
Select to_date('2015/10/24', 'yyyy-mm-dd') from dual;
--NVL(expr1,expr2),若expr1为null, 返回expr2; 不为空,返回expr1。 注意:两者类型要一致;
--NVL2 (expr1, expr2, expr3),若expr1不为NULL,返回expr2 ;为NULL,返回expr3。注意:expr2 和expr3 类型不同的话,expr3 会转换为expr2 的类型;
--NULLIF (expr1, expr2),若expr1和expr2相等,返回NULL;不相等,等返回expr1