
Oracle
一个热爱bug的程序猿
这个作者很懒,什么都没留下…
展开
-
关于oracle中几个常用的函数(转)
row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的). 与rownum的区别在于:使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而此函数在包含排序从句后是先排序再计算行号码. row_numbe原创 2013-07-18 15:45:28 · 508 阅读 · 0 评论 -
数据比对的sql(oracle数据库)
一个表中uniquecoding字段有重复值,还有一个cmp_state字段,代表状态,要求对uniquecoding字段重复的记录只留一条不做标记,其它的对其cmp_state全都标记为"重复"-- 去重,自己比自己update COMP_ASC_TEST_1 set cmp_state='重复' where id in( select b.id from ( sele原创 2013-07-18 15:45:37 · 721 阅读 · 0 评论 -
oracle中申明变量并执行sql语句(貌似跟sql server有点差别)
下面是我写的一个简单的例子declarev_num NUMBER(10);beginv_num:=1;while(v_numloop update comp_tskf_test_1 set uniquecoding=2872+v_num where id=4411502+v_num; v_num:=v_num+1;end loop;end;原创 2013-07-18 15:45:35 · 735 阅读 · 0 评论 -
oracle的分析函数
收藏下,直接给个链接吧:http://www.cnblogs.com/sunsonbaby/archive/2004/09/29/47876.aspx原创 2013-07-18 15:45:30 · 522 阅读 · 0 评论 -
Oracle 排序中常用的NULL值处理方法(转)
1、缺省处理 Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前。 2、使用nvl函数 nvl函数可以将输入参数为空时转换为一特定值,如nvl(employee_name,’张三’)表示当employee_name为空时则返回’张三’,如果不为空则返回employee_name,通过这个函数可以定制null的排序原创 2013-07-18 15:45:12 · 563 阅读 · 0 评论 -
ORACLE中row_number over(partition by col1 order by col2)用法
转载自http://space.itpub.net/7366728/viewspace-594893 row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的). 与rownum的区别在于:使用rownum进行排序的时候是先对结原创 2013-07-18 15:43:45 · 661 阅读 · 0 评论 -
Oracle数据库用户名和密码丢失的解决方案
装了个Oracle数据库,想进去了解下Oracle跟sql server和mysql有什么不同,打开sql plus,提示输入用户名和密码,为题来了,用system,sys和scott都登不进去,提示“ora-280000 the account is locked”,到网上搜了下,http://www.pczpg.com/a/2010/1121/22016.html和http://hi.baid原创 2013-07-18 15:43:25 · 828 阅读 · 0 评论 -
count(*) over (partition by ……)用法详解
select id,count(*) over(partition by pro_id) from sal;以pro_id分组,统计分组后每个pro_id的记录总数及对应的id;类似还有count(*) over(order by ……)、sum(amount) over(partition by ……)等,略有区别,挺有意思,有兴趣可以小研究下原创 2013-07-18 15:45:53 · 25567 阅读 · 0 评论 -
Oracle存储过程(转)
1.基本结构 CREATE OR REPLACE PROCEDURE 存储过程名字( 参数1 IN NUMBER, 参数2 IN NUMBER) IS|AS变量1 INTEGER :=0;变量2 DATE;BEGINEND 存储过程名字说明:is也可换成as2.SELECT INTO STATEMENT 将select查询的结果存入到变量中,可以同时将多个列存储多个变量中,必须有一条原创 2013-07-18 15:45:14 · 637 阅读 · 0 评论 -
the use of nvl() in oracle
如果你某个字段为空,但是你想让这个字段显示a, nvl(字段名,a),就是当你选出来的时候,这个字段虽然为空,但是显示的是a,当然这个0也可以换成其他东西,如:1,2,3……但是a的数据类型必须和字段名的类型一致!原创 2013-07-18 15:45:10 · 563 阅读 · 0 评论 -
oracle中创建表的另外一种方式
1. 复制表结构及其数据: create table table_name_new as select * from table_name_old 2. 只复制表结构: create table table_name_new as select * from table_name_old where 1=2; 或者: create table table_name_new原创 2013-07-18 15:45:33 · 1065 阅读 · 0 评论 -
rank()、dense_rank()、row_number()、first、last比较
sal表:id pro_id amount1 1 102 1 103 2 304 1 405 2 50select id,pro_id,row_number() over (PARTITION by pro_id order by amount) rownumbe原创 2013-07-18 15:45:50 · 798 阅读 · 0 评论