Oracle中的关键字
NVL和COALESCE的区别:
nvl(COMMISSION_PCT,0)
如果第一个参数为null,则返回第二个参数
如果第一个参数为非null,则返回第一个参数
COALESCE(EXPR1,EXPR2,EXPR3...EXPRn)
从左往右数,遇到第一个非null值,则返回该非null值。
多层判断
第一点区别:从上面可以知道,nvl只适合于两个参数的,COALESCE适合于多个参数。
第二点区别:COALESCE里的所有参数类型必须保持一致,nvl可以不一致。
ps:1、select coalesce(to_char(PARENT_ID),'--') 项目名称,nvl(PARENT_ID,'FD') project_name,CATEGORY_CODE "name" from DM_TRANSGAP_ANALYSIS_CONFIG;
2、select coalesce(TO_CHAR(UPDATE_USER),TO_CHAR(PARENT_ID),'--') 项目名称,nvl(PARENT_ID,'FD') project_name,CATEGORY_CODE "name" from DM_TRANSGAP_ANALYSIS_CONFIG;
Connect By Prior(递归查询):
1、start with id= 是定义起始节点(种子),可以是id也可以是root_id,定义为root_Id查询该节点下所有的树结构,定义为id(子节点)则查询指定的树
2、connect by prior :prior的含义为先前,前一条记录。prior id=root_id 也就是前一条记录
的id等于当前记录的root_id(父id)
3、可以向下或者向上查找。。。。
4、level字段为oracle特有的层级字段,可以通过level字段查询指定的层级
select root_id,id,name,level from t2 where level=1
start with root_id = 0
connect by prior id = root_id;
年月日的日期处理:
(select sysdate from dual) time, item.update_date>add_months(sysdate,-1)
select (to_char(sysdate,'dd')-1) from dual
to_char(LAST_DAY(add_months(sysdate,-1)),'dd ') (to_char(sysdate,'hh24')-1),
select trunc(sysdate) from dual去掉时间保留日历,namely,2017/02/01
concat(to_char(sysdate,'yyyy')||to_char(add_months(sysdate,-1), '-MM-'),'01 namely 拼接返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL
//计算起止时间
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String endDate = sdf.format(calendar.getTime());
calendar.add(Calendar.HOUR_OF_DAY, Integer.parseInt(period) * (-1));
String startDate = sdf.format(calendar.getTime());
||在oracle中的作用是连接两个字符串
(select sysdate from dual) time,
item.update_date>add_months(sysdate,-1)
select (to_char(sysdate,'dd')-1) from dual
to_char(LAST_DAY(add_months(sysdate,-1)),'dd ')
(to_char(sysdate,'hh24')-1),
select trunc(sysdate) from dual去掉时间保留日历,namely,2017/02/01
concat(to_char(sysdate,'yyyy')||to_char(add_months(sysdate,-1), '-MM-'),'01 namely 拼接返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL
||在oracle中的作用是连接两个字符串
substr(字段,a,b)a代表第几个位置b代表长度0和1的效果一样用负数则从右边开始数第几个位置
schema:
一个用户有一个缺省的schema,其schema名就等于用户名,当然一个用户还可以使用其他的schema。如果我们访问一个表时,没有指明该表属于哪一个schema中的,系统就会自动给我们在表上加上缺省的sheman名。比如我们在访问数据库时,访问scott用户下的emp表,通过select * from emp; 其实,这sql语句的完整写法为select * from scott.emp。在数据库中一个对象的完整名称为schema.object,而不属user.object。
SQL> select * from test;
NAME
----------
system
SQL> ALTER SESSION SET CURRENT_SCHEMA = scott; --改变用户缺省schema名
Session altered.
SQL> select * from test;
NAME
----------
scott
切断其他占用表的session:
select session_id from v$locked_object;
SELECT sid, serial#, username, osuser FROM v$session where sid = 81;
select session_id,serial# from v$locked_object a left join v$session b on a.session_id = b.sid;
ALTER SYSTEM KILL SESSION '81,38658';
查询版本等信息:
SELECT * FROM v$version;
10g数据库不能有多余的with语句。
Oracle中的关键字的更多相关文章
- 如何查询oracle中的关键字
如何查询oracle中的关键字,执行: select * from v$reserved_words
- 【oracle】Oracle中as关键字
在Oracle中as关键字不能用于指定表的别名 在Oracle中指定表的别名时只需在原有表名和表的别名之间用空格分隔即可 但as关键字可以用于指定列的别名 但在存储过程中如果列的别名与原有列名相同,在 ...
- Oracle中with关键字的使用
open p_cr1 for with sqla as (select d.*, (select c.STATICMONTH from ly_zg_jzfbtstatic c where c.ID = ...
- ORACLE中ESCAPE关键字用法
ESCAPE用法 1.使用 ESCAPE 关键字定义转义符: 在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符. 2.ESCAPE 'escape_character' 允许在字符串中搜 ...
- Oracle中查询关键字select--from--where--group by--having--order by执行顺序
select--from--where--group by--having--order by 这6个查询关键字的执行顺序: 1.from组装来自不同数据源的数据:2.where基于指定的条件对记录行 ...
- oracle中更新关键字merge和 with as关键字
merge是oracle特有的语句,两表关联操作(增.删.改)就效率非常高 merge into table_name alias1 using (table|view|sub_query) alia ...
- Oracle中函数关键字简介
常用的语法:select--from--where--group by--having--order by 1.分组子句group by +con 按什么分组 2.having子句 对上面分组的数据 ...
- Oracle中如何实现Mysql的两表关联update操作
在看<MySQL 5.1参考手册>的时候,发现MySQL提供了一种两表关联update操作.原文如下: UPDATE items,month SET items.price=month.p ...
- 【Oracle】oracle中rownum的说明及使用技巧
oracle中常用到ROWNUM,所以做一些本人对rownum的一些认识和使用技巧的记录,以便备查. 一.rownum的说明 rownum是oracle特有的一个关键字. (1)对于基表,在inser ...
随机推荐
- C++ 继承与接口 知识点 小结(一)
[摘要] 要求理解覆盖.重载.隐藏的概念与相互之间的差别.熟记类继承中对象.函数的訪问控制:掌握虚函数.虚函数表.虚函数指针的联系:理解区分虚函数和虚继承在虚方法.虚指针在空间分配上的重点与难点:熟练 ...
- ajax加载时的进度条
运行效果如下图,pc和移动都可以展示,调用方法很简单,开始调用:loading.baosight.showPageLoadingMsg(false),false代表不现实加载说明,true展示加载说明 ...
- openCV—Python(1)——初始化环境
本系列博客主要參考自--Adrian Rosebrock:<Practical Python and OpenCV: An Introductory,Example Driven Guide t ...
- pyqt5 学习总结
关于基类 一般的文件都会基于QWidget,QtWidgets.QMainWindow 或QDialog,like this class Example(QWidget): QWidget类是所有用户 ...
- 基于Redis缓存的Session共享测试(转)
本机ip为192.168.1.101 1.准备测试环境 两个Tomcat 在Eclipse中新建2个Servers,指定对应的Tomcat,端口号错开. Tomcat1(18005.18080.180 ...
- centos下保留python2安装python3
1. 安装依赖环境 # yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline- ...
- Deployment相对ReplicaSet优势
系列目录 RS与Deployment主要用于替代RC.RS的全称为Replica Set.相对于RC,RS与Deployment的优势如下: RC只支持基于等式的selector,如env=dev或者 ...
- iOS移动开发周报-第16期
iOS移动开发周报-第16期 [摘要]:本期iOS移动开发周报带来如下内容:iOS 8的新特性,敏感逻辑的保护方案,iOS绘图教程,WKWebView的使用等. 教程 <iOS 8>: ...
- C语言malloc
在子函数里面动态申请的内存不会自动被系统收回的,因为这些空间在堆里面,而不是栈,平常所说的不能返回指向栈的指针,比如在子函数里面定义一个字符指针,指向常量"hello"因为函数调用 ...
- 实记处理mongodb的NUMA问题
一次在启动mongodb的过程中,出现过NUMA这个问题, mongodb日志显示如下: WARNING: You are running on a NUMA machine. We suggest ...