Oracle update和order by】的更多相关文章

今天遇到一个关于SQL转换成Oracle语句的问题,描述如下: select * from emp order by deptno; select * from dept; Sql Server: update dept a set dname=(select top 1 ename from emp where deptno=a.deptno order by sal) 经过尝试,查找资料,得出下面转换结果,不知道这样是否可行: update dept a set dname= (with t…
Oracle Update 语句语法与性能分析 - 多表关联   为了方便起见,建立了以下简单模型,和构造了部分测试数据: 在某个业务受理子系统BSS中, SQL 代码 --客户资料表 create table customers ( customer_id number() not null, -- 客户标示 city_name varchar2() not null, -- 所在城市 customer_type ) not null, -- 客户类型 ... ) create unique…
前言 今天在导入数据到系统后需要根据时间排序对刚导入的TOP N条进行数据更新,之前没遇到过UPDATE TOP...ORDER BY,以此作为备忘录. SQL SERVER之UPDATE TOP...ORDER BY 我们利用AdventureWorks2012实例数据库来演示,一般情况我们如下一次性更新所有数据,如下: SELECT * FROM Production.Product 如上我们一次性将表Production.Product中的列ListPrice更新为1,结果如下: 但是我们…
`SELECT * FROM student ROWNUM <= 1 ORDER BY id ASC`执行结果,返回结果没有排序.使用驱动"System.Data.OracleClient". 换用Oracle.ManagedDataAccess.Client执行结果就排序了. ## 原因分析-----------------------------oracle中rownum和order by之间的关系,rownum并不是和sql server中的top一样,区别在于执行的顺序不…
oracle update left join 写法 (修改某列,条件字段在关联表中) 案例: E:考核表 X,:用户表 USERNAME 关联 需求:修改营业部最高分 分析:通过登录账号的营业部ORG_ID 更新E表,E表中无ORG_ID 字段,X表中可以关联. 写法一: UPDATE USER_INFO E SET E.TOP_SCORE = (SELECT 230 FROM USER X WHERE E.USERNAME = X.USERNAME and X.ORG_ID = ‘B2660…
一次性update多个字段 以student表为例: -- 创建学生表 create table student ( id number, name varchar2(40), age number, birthday date, address varchar2(200) ) -- 插入数据 insert into student(id, name, age, birthday, address) values(1, '王小波', 50, to_date('19700520','yyyymmd…
Oracle update和select 关联 目录 Oracle update和select 关联 1.介绍 2.解决方法 2.1.需求 2.2.错误演示 2.3.解决方法 1.介绍 本文主要向大家介绍了Oracle数据库之oracle update set select from 关联更新,通过具体的内容向大家展现,希望对大家学习Oracle数据库有所帮助. 工作中有个需求,现在新表中有一些数据跟老表的基本一样,这样只需要把老表中数据搬到新表中就可以了,同时把不同的字段修改下数据即可,在修改…
为了方便起见,建立了以下简单模型,和构造了部分测试数据:在某个业务受理子系统BSS中, SQL 代码--客户资料表 create table customers ( customer_id number(8) not null, -- 客户标示 city_name varchar2(10) not null, -- 所在城市 customer_type char(2) not null, -- 客户类型 ... ) create unique index PK_customers on cust…
在表的更新操作中,在很多情况下需要在表达式中引用要更新的表以外的数据.象sql server提供了update的from 子句,可以将要更新的表与其它的数据源连接起来.虽然只能对一个表进行更新,但是通过将要更新的表与其它的数据源连接起来,就可以在update的表达式中引用要更新的表以外的其它数据.例如: UPDATE Table2SET Table2.ColB = Table2.ColB + Table1.ColBFROM Table2 INNER JOIN Table1 ON (Table2.…
本文转自:http://blog.csdn.net/disiwei1012/article/details/52589181 http://www.blogjava.net/Jhonney/archive/2010/06/25/324503.html $ sqlplus user/pass SQL*Plus: Release - Production on Wed Aug :: Copyright (c) , , Oracle Corporation. All rights reserved.…
Oracle没有update from语法,可以通过四种写法实现同样的功能: 一.标准update语法(常用.速度可能最慢) 当更新的表示单个或者被更新的字段不需要关联表带过来,此法是最好的选择. update a set a.c2= (select b.c2from b where a.c1=b.c1) ') as M set ac2=bc2 三.merge更新法 (关联字段非主键时,速度较快) merge是oracle特有的语句,语法如下: MERGE INTO table_name ali…
1.如果order by columnA,那么在where查询条件中添加条件columnA=value,则oracle内部会过滤order by排序,直接用索引(可以通过execution plan查看). 2.如果order by columnA,columnB,那么在where查询条件中添加条件columnA=value1,columnB=value1,则oracle内部会过滤order by排序,直接用索引(可以通过execution plan查看). 3.如果order by colum…
感觉还是sqlserver中的写法比较好理解,Oracle的写法都快把我搞晕了, 注意: 1.要修改的表,不要加入到子查询中,用别名在子查询中与其他表进行关联即可. 2.exsits不能少,exsits后面的子查询与上一个子查询里的内容相同即可. update table1 t1 set t1.name= ( select t2.name from table2 t2,table3 t3 where t2.id=t1.id2 and t3.id=t1.id3 and t2.is_del<>1…
这几天测试java内存数据库,和oracle比较时发下一个update from语句很慢,如下: update business_new set fare1_balance_ratio = (select BALANCE_RATIO from bfare2 where bfare2.exchange_type = business_new.exchange_type and bfare2.stock_type = business_new.stock_type and (bfare2.entru…
1.update t2 set parentid=(select ownerid from t1 where t1.id=t2.id); 2. update tb_client_win_lost_report a set a.rolling_code_id=2 where game_code_id=70000 and exists (select 'x' from (select a.id from (select id,level_ from tb_admin_role connect by…
update两表关联的写法包括字查询 1.update t2 set parentid=(select ownerid from t1 where t1.id=t2.id); 2. update tb_client_win_lost_report a set a.rolling_code_id=2 where game_code_id=70000 and exists (select 'x' from (select a.id from (select id,level_ from tb_adm…
操作数据库,经常会出现误操作,昨天执行的更新操作之后发现更新错了,只能想办法数据恢复了,现在整理一下 第一步:查询执行更新操作的时间 select r.FIRST_LOAD_TIME,r.* from v$sqlarea r order by r.FIRST_LOAD_TIME desc ; 执行上面那条SQL语句,在下图的SQL_TEXT字段找到你执行更新操作的那条更新语句,找到更新操作时间…
task 任务表 role 角色表 两表之间必须有关联的字段 update task t set t.roleName = ( select r.name from role r where r.id=t.roleid )…
UPDATE Sf_Msg_Monthly SET smm_Closed_Time = to_date('2011-12-30 11:54:30','yyyy-MM-dd HH24:MI:SS') ;…
执行update语句的时候发现执行半天不成功 update main_order set order_source = '2', order_status = '2' 查询哪些对象被锁 select object_name, machine, s.sid, s.serial# from v$locked_object l, dba_objects o , v$session s where l.object_id = o.object_id and l.session_id=s.sid; 查询出…
工作中有个需求,现在新表中有一些数据跟老表的基本一样,这样只需要把老表中数据搬到新表中就可以了,同时把不同的字段修改下数据即可,在修改字段时发现,需要指定一个条件,比如主键id,来修改某条记录,这样一条一条修改效率太低了,有没有批量操作的方式呢? SQL>select * from wwn2; TOWN ID -------------------- ---------- 222 222 111 111 ww'jj 111 llll 1111 dddd 2222 lllldf 111 lllld…
对于有的更新语句,要更新的表可能条件不够,需要用到left join关联其他表, 但是不能直接关联,否则报错:错误如下: update imim_gireqbillitems gi left join imim_gireqbills g on g.guid=gi.guid set gi.quantity= ( select sum(gi2.quantity) from imim_gireqbillitems gi2 left join imim_gireqbills g2 on g2.guid=…
create table test (id number(2), name varchar2(10), salary number(6,2));insert into test values (1,'Tom',120);insert into test values (2,'Ellen',240);insert into test values (2,'Joe',80);insert into test values (3,'Andy',300);insert into test values…
UPDATE table1 t1 SET (name, desc) = (SELECT t2.name, t2.desc FROM table2 t2 WHERE t1.id = t2.id) WHERE EXISTS ( FROM table2 t2 WHERE t1.id = t2.id ) Assuming the join results in a key-preserved view, you could also UPDATE (SELECT t1.id, t1.name name1…
\\ 查询被锁的对象.来源.sid和serial select object_name, machine, s.sid, s.serial# from v$locked_object l, dba_objects o, v$session s where l.object_id = o.object_id and l.session_id = s.sid \\ 杀死会话链接,SID和SERIAL 要对应上 alter system kill session ','; \\ 如果报错,则执行以下操…
mysql: update 表A a,表B b set a.xx=b.xx where a.id=b.id; oracle update 表A set a.xx=(select b.xx from 表B where a.id = b.id) from b.xx where a.id = b.id)…
MySQL: UPDATE ChgCfm t1 INNER JOIN tb_dz_file t2 ON t1.ID = t2.ID ' SQLserver: FROM ChgCfmRcd t1 ' FROM ChgCfmRcd t1 '); Oracle: ');组合一个数: SELECT  CONCAT(SUBSTRING('0105',1,2),'01')…
普通的 update 都是根据条件来对部分列的内容进行修改,用法如下: update temp_cwh_table set name = 'xxx' where id = 1; 假设现在有2张表:A.B,需要关联A.B表,根据相同的 id 来 update A表. 建立测试表 -- 创建测试表 temp_cwh_001 create table temp_cwh_001 ( id int, name varchar2(20) ); -- 插入数据 insert into temp_cwh_001…
1.关于Union的知识 select 11 from dual union select 11 from dual 和 select 11 from dual union all select 11 from dual 有区别,Union的作用是合并查询结果  All保留重复行 2. 关于Order By的知识 2.1 select t.*, t.rowid from users t ,2--按照列号排序 2.2 select t.*, t.rowid from users t order b…
FROM:http://blog.csdn.net/pan_tian/article/details/7754598 API To Find Sales Order's Subtotal,discount,charges and Tax (OE_OE_TOTALS_SUMMARY.ORDER_TOTALS) API for Cancelling the Purchase Order (PO) Document (PO_DOCUMENT_CONTROL_PUB.CONTROL_DOCUMENT)…