Oracle Cannot Update TOP N Issue, 请专家解答
大家好
上周写了匿名方法一文,很多读者,很高兴,相信我们已经从大伙的回复中,对.NET又有了更深刻的认识.
好,现在说主题,各类数据库都有相应更新本表top n的方案.现在我一一举例
首先看表结构如下:
数据库以及表创建命令初始化数据库语句
CREATE TABLE student(
id varchar(256) NOT NULL,
name varchar(256) NULL,
age int NULL)
insert into student values('','wfg',20);
insert into student values('','lxx',21);
insert into student values('','wly',3);
insert into student values('','jcj',60);
insert into student values('','wss',60);
insert into student values('','xsm',60);
insert into student values('','lcf',60);
insert into student values('','wjy',35);
insert into student values('','hyf',35);
insert into student values('','lwl',12);
表格结构如下:
| ID | Name | Age |
| 001 | wfg | 20 |
| 002 | lxx | 21 |
| 003 | wly | 3 |
| 004 | jcj | 60 |
| 005 | wss | 60 |
| 006 | xsm | 60 |
| 007 | lcf | 60 |
| 008 | wjy | 35 |
| 009 | hyf | 35 |
| 010 | hwl | 12 |
需求如下:按姓名顺序后,更新前5个的年龄为100岁,如何办到.
首先说下MSSQL
--方案1失败
update top(5) student set age = 100 order by name;
--方案2ok
update student set age = 100 where id in (select top 5 id from student order by name );
select top(5) * from student order by name;
很成功,干得漂亮!
接下来我们看看MYSQL呢,拭目以待...
update student set age = 100 order by name limit 5;
select * from student order by name limit 5;
Good news, MySql干得不错,
接下来我们再看看oracle呢?
--方式1失败
update student set age = 100 where rownum <5 order by name ;
commit;
--方式2失败
update student set age = 100 where id in (select id from student where rownum<5 order by name);
commit;
select * from student where rownum<5 order by name;
目前为此,还没有在oracle里找到办法,请数据库专家指导,感谢为盼!
Oracle Cannot Update TOP N Issue, 请专家解答的更多相关文章
- .NET 匿名方法的BUG,请专家解答
匿名方法是.NET 3.5之后的一个好东东,很多人使用,但是我在最近的工作当中发现了一个问题. 请专家解答 //list里存放10个数字 List<); ; i < ; i++) { li ...
- sql: oracle, for update和for update nowait的区别
1. oracle for update和for update nowait的区别 http://www.cnblogs.com/quanweiru/archive/2012/11/09/276222 ...
- 在SQL Server中如何进行UPDATE TOP .....ORDER BY?
前言 今天在导入数据到系统后需要根据时间排序对刚导入的TOP N条进行数据更新,之前没遇到过UPDATE TOP...ORDER BY,以此作为备忘录. SQL SERVER之UPDATE TOP.. ...
- oracle执行update语句时卡住问题分析及解决办法
转载:http://www.jb51.net/article/125754.htm 这篇文章主要介绍了oracle执行update语句时卡住问题分析及解决办法,涉及记录锁等相关知识,具有一定参考价值, ...
- EBS报错FRM-92095:Oracle JInitiator版本太旧,请安装版本1.1.8.2或更高版本
EBS打开报错FRM-92095:Oracle JInitiator版本太旧,请安装版本1.1.8.2或更高版本 打开EBS的form,系统报错,中文提示信息是:FRM-92095:oracle ji ...
- Oracle EBS R12 WIP Component Issue&Return Process
oracleassemblytransactionscomponentsjobsreference 目录(?)[-] 定义BOM 定义Routing 定义WIP Discrete Job 发料 Mat ...
- Oracle的update语句优化研究
最近研究sql优化,以下文章转自互联网: 1. 语法 单表:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 如:update t_join_situation s ...
- [转]oracle for update和for update nowait的区别
1概念小结:(针对以下引用区域内容) 1.1 普通select语句不加锁. 1.2 for update和for update nowait都试图将符合条件的数据加上行级锁.用于排斥其他针对这个表的写 ...
- oracle for update和for update nowait
原文地址:http://www.cnblogs.com/quanweiru/archive/2012/11/09/2762223.html 1.for update 和 for update nowa ...
随机推荐
- 搭建JIRA汉化后乱码问题
JIRA的简体中文乱码(使用了BIG5导致) 安装完JIRA汉化后发现一部分中文显示乱码,经检查:本来应该是UTF-8编码的却显示成Big5,Big5根本不支持简体中文的! 进入JIRA数据库后找到 ...
- erlang热部署
以下流程参考rebar的wiki,亲测 rebar的版本一定要注意,高版本对于下面两个指令有bug rebar generate-appups rebar generate-upgrade 经过一个个 ...
- shutil模块,ZipFile 和 TarFile 两个模块
高级的文件.文件夹.压缩包处理模块 shutil.copyfileobj(fsrc, fdst[, length])将文件内容拷贝到另一个文件中,可以部分内容 shutil.copyfile(src, ...
- linux输入子系统之按键驱动
上一节中,我们讲解了Linux input子系统的框架,到内核源码里详细分析了输入子系统的分离分层的框架等. 上一节文章链接:http://blog.csdn.net/lwj103862095/ar ...
- Vue 简单的总结二
表单输入绑定 数据双向绑定 v-model 绑定相同的属性 当属性变化绑定的标签内容也跟着变化 v-model 只能应用像在input textare select 标签 v-model.lazy 懒 ...
- Hibernate4.3.5搭建Log4j日志环境
本文记录Hibernate4.3.5搭建Log4j日志环境的过程 1.搞清楚Hibernate4.3.5的日志环境依赖 方法:查看帮助文档 3.5. Logging Important Complet ...
- CSS JQuyer 元素选择
$(this) 当前 HTML 元素 $("p") 所有 <p> 元素 $("p.intro") 所有 class="intro" ...
- mysql 存储过程变量的定义
Mysql变量: 1.DECLARE variable_name datatype(size) DEFAULT default_value; 此处声明的相当于一个局部变量 ,在end 之后便失效. 声 ...
- EditText中onEditorAction监听事件执行两次
Android的EditText通过setOnEditorActionListener给文本编辑框设置监听事件,但是在其处理方法onEditorAction中的逻辑在每次回车后都触发了两次, 原来是在 ...
- windows 共存多个位数不同的jdk时,eclipse的报错对应措施
1. 判断当前jdk的位数 # java -version java version "1.6.0_26" Java(TM) SE Runtime Environment (bui ...