zoukankan      html  css  js  c++  java
  • MySQL、MS SQL、Oracle三种数据库查询M到N行数据 分类: 数据库 20091110 23:33 688人阅读 评论(0) 收藏

    先创建表及插入测试数据,以 MySQL为例,中如下:

    --建表
    CREATE TABLE `table1` (
      `id` int(11) NOT NULL,
      `name` varchar(20) default NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;

    --插入测试数据
    insert into table1 values
    (1,'beibei'),
    (2,'jack'),
    (3,'tom'),
    (4,'andy'),
    (5,'liu'),
    (6,'jacky');

    --查询
    --SELECT * FROM table1
    id   name
    1    beibei
    2    jack
    3    tom
    4    andy
    5    liu
    6    jacky

    如果查询第3行到第5行,即查询结果为:

    id    name
    3     tom
    4     andy
    5     liu


    MySQL

    --2为行的索引,3为查询出来的行的总数
    SELECT * FROM table1 limit 2,3;


    SQL Server

    --此语句未经验证,如有错误请指正!
    SELECT * FROM (SELECT  TOP 3  *  FROM  (SELECT  TOP  5  *  FROM  table1)  ORDER  BY  id  DESC)  ORDER BY id ASC; 


    Oracle

     SELECT * FROM (SELECT rownum rn,t.* FROM table1 t) WHERE rn BETWEEN 3 AND 5;

     --或者使用分析函数

     SELECT * FROM (SELECT  t.*, ROW_NUMBER()  OVER  (ORDER  BY  id)  rn  FROM  tb  t)  WHERE  rn  BETWEEN  3  AND  5

      

    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    云计算、大数据和人工智能简单概述
    Linux 文件管理命令语法、参数、实例全汇总(一)
    C#之继承
    类和结构(二)
    类和结构(一)
    C#基础语法(二)
    C#基础语法(一)
    dotnet体系结构
    九卷读书:刘润商学院学习笔记1
    Linux内存管理
  • 原文地址:https://www.cnblogs.com/configman/p/4657657.html
Copyright © 2011-2022 走看看