Oracle常用sql语句

回滚

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')

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值