大家好

上周写了匿名方法一文,很多读者,很高兴,相信我们已经从大伙的回复中,对.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, 请专家解答的更多相关文章

  1. .NET 匿名方法的BUG,请专家解答

    匿名方法是.NET 3.5之后的一个好东东,很多人使用,但是我在最近的工作当中发现了一个问题. 请专家解答 //list里存放10个数字 List<); ; i < ; i++) { li ...

  2. sql: oracle, for update和for update nowait的区别

    1. oracle for update和for update nowait的区别 http://www.cnblogs.com/quanweiru/archive/2012/11/09/276222 ...

  3. 在SQL Server中如何进行UPDATE TOP .....ORDER BY?

    前言 今天在导入数据到系统后需要根据时间排序对刚导入的TOP N条进行数据更新,之前没遇到过UPDATE TOP...ORDER BY,以此作为备忘录. SQL SERVER之UPDATE TOP.. ...

  4. oracle执行update语句时卡住问题分析及解决办法

    转载:http://www.jb51.net/article/125754.htm 这篇文章主要介绍了oracle执行update语句时卡住问题分析及解决办法,涉及记录锁等相关知识,具有一定参考价值, ...

  5. EBS报错FRM-92095:Oracle JInitiator版本太旧,请安装版本1.1.8.2或更高版本

    EBS打开报错FRM-92095:Oracle JInitiator版本太旧,请安装版本1.1.8.2或更高版本 打开EBS的form,系统报错,中文提示信息是:FRM-92095:oracle ji ...

  6. Oracle EBS R12 WIP Component Issue&Return Process

    oracleassemblytransactionscomponentsjobsreference 目录(?)[-] 定义BOM 定义Routing 定义WIP Discrete Job 发料 Mat ...

  7. Oracle的update语句优化研究

    最近研究sql优化,以下文章转自互联网: 1.     语法 单表:UPDATE 表名称 SET 列名称 = 新值 WHERE 列名称 = 某值 如:update t_join_situation s ...

  8. [转]oracle for update和for update nowait的区别

    1概念小结:(针对以下引用区域内容) 1.1 普通select语句不加锁. 1.2 for update和for update nowait都试图将符合条件的数据加上行级锁.用于排斥其他针对这个表的写 ...

  9. oracle for update和for update nowait

    原文地址:http://www.cnblogs.com/quanweiru/archive/2012/11/09/2762223.html 1.for update 和 for update nowa ...

随机推荐

  1. VCS (版本控制系统)

    1.什么是VCS? 版本控制系统(version control system),是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统.版本控制系统不仅可以应用于软件源代码的文本文件, ...

  2. unittest--unittest.defaultTestLoader()的方法

    unittest.defaultTestLoader(): defaultTestLoader()类,通过该类下面的discover()方法可自动更具测试目录start_dir匹配查找测试用例文件(t ...

  3. HTMLTestRunner 汉化版---来源一个大神的源码(加了失败截图,用例失败重新执行 功能)

    HTMLTestRunner 汉化版 20170925 测试报告完全汉化,包括错误日志的中文处理 针对selenium UI测试增加失败自动截图功能 增加失败自动重试功能 增加饼图统计 同时兼容pyt ...

  4. Vue.js:起步

    ylbtech-Vue.js:起步 1.返回顶部 1. Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现. 语法格式如下: var vm = new Vue({ // 选项 }) ...

  5. javascript知识

    JavaScript概述 JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.( ...

  6. 3 ignite windows 上安装

    实在懒得写了,  基本上按照官网的操作就行,很简单 https://apacheignite.readme.io/docs/getting-started

  7. activemq artemis安装运行及其在springboot中的使用

    安装 创建broker 在springboot中的使用 依赖 配置 Producer Consumer Rest使用 安装 http://activemq.apache.org/artemis/dow ...

  8. infos

    C++文件流 iostream 提供了cin cout 分别用于从标准输入读取流和向标准输出写入流cout 标准输出 屏幕 输出写入fstream文件流 cin 从标准输入读取cout 向标准输入写入 ...

  9. javascript中的装箱和拆箱操作

    1,装箱: 把基本数据类型转换为对应的引用类型的操作称为装箱,把引用类型转换为基本的数据类型称为拆箱. 在<javascript高级程序设计>中有这样一句话: 每当读取一个基本类型的时候, ...

  10. PHP下的手机号码效验

    手机号是否合法有效,基本都是用正则匹配的,所以正则表达式是关键,可以用到java.c#等语言里. /** * 验证手机号是否合法 * * @param string $mobile * 验证的手机号 ...