回滚
alter table T_BHF_ZQYW_QWPQ(表名) enable row movement; flashback table T_BHF_ZQYW_QWPQ to timestamp to_timestamp('2019-07-15 20:20:00','yyyy-mm-dd hh24:mi:ss')
nvl()
nvl()判断某个值是否为空值,若不为空值则输出,若为空值,返回指定值
nvl(zb,0) --zb为字段
to_char()
to_char(date类型字段,"转换格式")日期转换为字符串
to_char(HWRQ,"yyyy-mm-dd") --HWRQ为字段
to_date()
to_date("要转换的字符类型字段","转换的格式")
select to_char(to_date('2020-08-26','yyyy-mm-dd'),'day') from dual //星期三
add_months()
add_months(tims,months)函数可以得到某一时间之前或之后n个月的时间
select add_months(sysdate,-6) from dual; 该查询结果是当前时间半年前的时间 比如当前时间为2019/7/24 10:28:16 return:2019/1/24 10:28:16
union
union指令目的是将两个SQL语句的查询结果合并起来(结果去重) 注意:union的用法中,select语句中,两个字段的类型匹配,并且字段个数要相同
union all指令和Union指令的作用是一样的,将两个SQL语句执行的结果合并起来(结果不去重)
在实际开发中,一般union all的效率要高些,因为union all不涉及去重,排序
substr()字符串截取函数
格式1:substr(string string,int a,int b);string是需要截取的字符串,a截取字符串的开始位置,注:当a等于0或1时,都是从第一位开始截取 b是要截取的字符串的长度
格式2:substr(string string,int a);这里a可以理解从a个字符串开始截取后面所有字符串
ceil(n)取大于等于数值n的最小整数
floor(n)取小于等于数值n的最大整数
ps:select ceil(9.5) from dual; return :10
case when 两种表示形式:
1:
case sex
when '1' THEN '男'
when '2' THEN '女'
else ‘其他’ END
2:
case
WHEN SEX=‘1’ THEN ‘男’
WHEN SEX='2‘ THEN ’女‘
else '其他' END
分页语句
select * from (select a.*,rownum rn from(
...
) a where rownum <=${currentPage}*${pageSize}) where rn>(${currentPage}-1)*${pageSize}
查询当年记录
qwpq.qssj(字段) >=to_date(to_char(sysdate,'yyyy')||'01','yyyy-mm') and qwpq.qssj <= to_date(to_char(sysdate,'yyyy')||'12','yyyy-mm')
查询近些年的数据
select extract(year from sysdate) from dual; 当年
select extract(year from sysdate)-3 from dual; 三年前
年份 between (select extract(year from sysdate)-3 from dual) and (select extract(year from sysdate) from dual); 查询近三年
获取date类型字段年份
to_char('日期','yyyy') 转化为数字类型 : to_number('日期','yyyy')