oracle常用函数&查询

  随着工作内容的变化,项目中采用的数据库也由sqlserver转向了oracle,虽说都是结构化查询语言,但还是存在一些差异,把工作中用到的函数汇集起来,做个备忘。

  字符函数

 

upperlower,大小写转换

select * from oracle_demo where lower(name)='admin'

select upper(name) from oracle_demo

 

      转换函数

  

--to_char,转换为字符串,功能强大,提供了格式化的选项

select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual//获取当前时间

select to_char(sysdate,'yyyy-mm-dd') from dual;

select to_char(0.123,'0.999') from dual

--to_number,转换为数值

select * from oracle_demo order by to_number(grade) desc

   

      条件函数 

      NVL(expr1,expr2),如果第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值,类似于sqlserver的isnull函数

      select NVL(nickName,name) from oracle_demo

      

      其他函数

      length,查看字符长度,lengthb查看字节长度,一个汉字占用2个字节(根据oracle字符集编码会变化,不同的编码会占用3-4个字节),英文字母占用1个字节,

      查看oracle编码的语句

select length('字符长度'),lengthb('字符长度') from dual;

select length('hello'),lengthb('hello') from dual;
select userenv('language') from dual;
--
查看服务端 select * from nls_database_parameters; select * from v$nls_parameters where parameter='NLS_CHARACTERSET'; --查看客户端 select * from nls_instance_parameters; --查看会话 select * from nls_session_parameters;
+)表示外连接,并且总是放在非主表的一方

例如左外连接:
select A.a,B.a from A LEFT JOIN B ON A.b=B.b;
等价于
select A.a,B.a from A,B where A.b = B.b(+);

    树形查询

--从Root往树末梢递归
select * from tableA
start with id=475
connect by prior id = pid
--从末梢往树ROOT递归
select * from tableA
start with id=488
connect by prior pid = id

Oracle最近查询的语句

select sql_text,last_load_time from v$sql order by last_load_time desc;

select sql_text,last_load_time from V$SQLAREA order by last_load_time desc;
原文地址:https://www.cnblogs.com/jingsha/p/5325368.html