首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 冲浪宝典 > 网络资源 > Oracle 中返回最大值和返回前几个较大值(TOP10)问题一解
【标  题】:Oracle 中返回最大值和返回前几个较大值(TOP10)问题一解
【关键字】:Oracle,TOP10
【来  源】:http://blog.csdn.net/binglingshui/archive/2006/07/16/929287.aspx

Oracle 中返回最大值和返回前几个较大值(TOP10)问题一解

Oracle 中返回最大值和返回前几个较大值(TOP10)问题一解

需返回最大的编号(主键)加1实现自己加操作

1.使用触发器

CREATE SEQUENCE seqmyTableSNO ;
create table myTable
(
     cost1number(10,2),
     cost2number(10,2),
     cost3number(10,2),
     snointeger constraint pk_myTable primary key
);

CREATE TRIGGER myTable_b BEFORE INSERT
ON myTable FOR EACH ROW
BEGIN
select seqmyTableSNO.nextval into :new.sno from dual;
END;

这是网上找的其它人的方法,未经测试。

2.而我们用的是在程序中绑定修改,即先调用返回再进行加1插入。现将程序代码写下。

ReturnMaxID()
{
 string sqlCommand = "SELECT NVL(MAX(ID),0) " +
            "FROM Table1 " ;
        DbCommand dbCommand = db.GetSqlStringCommand(sqlCommand);
}

//说明:
MAX函数:取表中某列中的最大值。
NVL:空值转换,
NVL(VALUE,SUBSTITUTE)即如果VALUE的值为空(NULL),则该语句值为SUBSTITUTE,否则为VALUE

3.被PK掉的方法。

本是用DESC对(ID)列进行排序处理按(DESC),然后返回首行首列。
些方法经使用完全OK,只是代码太长,被老师一看就PK了,我还想了那么久。


关于TOP10的实现方法。

此类方法的主要实现手法是:
按照选定的条件,将选中的列按某一关键列进行排序,选中前十个的值。

    public DataSet GetTop10()
    {
 //DataConnection...
        string sqlCommand = "SELECT * FROM" +
            "(SELECT ID,Top , ROWNUM NO FROM Table1 " +
                "ORDER BY Top DESC)" +
            "WHERE NO <= 10 ";
        DbCommand dbCommand = db.GetSqlStringCommand(sqlCommand);
        return db.ExecuteDataSet(dbCommand);
    }

//语意说明:将ID,Top两列选出,并将按DESC的方式,对Top列进行排序。RowNum取出前十个值。
RowNum:限制输出为几个记录
示例:
 select Title from Book_sorted
  where Rownum < 10

搞定SQL Server 2005的数据库管理:【上一篇】
安装好MySQL后,用SQL去修改root帐号的密码,结果不能登录了!:【下一篇】
【相关文章】
  • ORACLE的小BUG?
  • 关于Excel中的数据如何导入到oracle数据库中.
  • oracle 逻辑备份命令EXP/IMP参数参考手册
  • ORACLE SQL语句中超郁闷的\r\n!!(菜鸟级)
  • 如何集成AppFuse与Oracle
  • C++连接Oracle
  • Oracle归档模式下各种情况的恢复『在Win2000下测试』
  • 如何手动建立Oracle监听器
  • Oracle SQL 性能优化技巧1
  • 用Oracle创建HTML页面
  • 【随机文章】
  • bht8000.src
  • Ms SQL Server中单引号的两种处理技巧
  • 用UltraMonkey(Linux Virtual Server)实现负载均衡
  • Solaris10探营: 安装和基本配置
  • 隐藏我的电脑中的驱动器
  • STP中专业术语的解释
  • LDR指令
  • OpenSolaris/Solaris中文FAQ
  • Java类加载内幕
  • 请慎用Ajax请求来探测不存在的资源
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.