[技术分享]20171214_oracle_带rownum的查询语句查询出重复数据:原因是order by没有加主键

原始的sql是这样的:

select * from(
    select tmp.*,rownum rn from(
        select * from table1 where column1 =‘12345‘ order by column2,column3 desc
    ) tmp where rownum<=30
) where rn>20

问题:在我的项目中,当rownum<=20 , rn>10的数据和rownum<=30 , rn>20的数据一样。

解决办法:后来在order by 的列上加了id ,就可以了,如下:

select * from(
    select tmp.*,rownum rn from(
        select * from table1 where column1 =‘12345‘ order by column2,column3 desc,id
    ) tmp where rownum<=30
) where rn>20
时间: 2024-10-02 05:52:18

[技术分享]20171214_oracle_带rownum的查询语句查询出重复数据:原因是order by没有加主键的相关文章

sql查询语句查询顺序

一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition> ORDER BY <o

sqlserver 把两个sql查询语句查询出来的两张表合并成一张表

第一个sql语句 select companyname gsmc,zb zhibiao from t_gsndzb left join t_companycode on t_gsndzb.gsbh=t_companycode.companyid 查询结果: 第二个sql语句 SELECT min(companyname) gsmc,cast(round(sum(t_xstj.hsje)/10000,2) as numeric(20,2)) ndje FROM t_xstj left join t

create table 使用select查询语句创建表的方法分享

转自:http://www.maomao365.com/?p=6642 摘要:下文讲述使用select查询语句建立新的数据表的方法分享 ---1 mysql create table `新数据表名` select * from `旧数据表名`; -------------------------------- ---2 oracle create table 新数据表名 as select * from 旧数据表名 -------------------------------- --3 mss

PHP-- 三种数据库随机查询语句写法

1. Oracle,随机查询查询语句-20条 select * from (  select  *  from 表名 order by dbms_random.value ) where rownum <= 20; 2.MS SQL Server,随机查询语句-20条 select top 20  * from  表名order by newid() 3.My SQL:,随机查询语句-20条 select  *  from  表名 order by rand() limit 20

SQL Server调优系列进阶篇(查询语句运行几个指标值监测)

原文:SQL Server调优系列进阶篇(查询语句运行几个指标值监测) 前言 上一篇我们分析了查询优化器的工作方式,其中包括:查询优化器的详细运行步骤.筛选条件分析.索引项优化等信息. 本篇我们分析在我们运行的过程中几个关键指标值的检测. 通过这些指标值来分析语句的运行问题,并且分析其优化方式. 通过本篇我们可以学习到调优中经常利用的几个利器! 废话少说,开始本篇的正题. 技术准备 数据库版本为SQL Server2008R2,利用微软的一个更简洁的案例库(Northwind)进行分析. 利器一

[swift]技术分享-数据库开发基本使用

? ?MAKE BY - LJW -------转载请注明出处-------? 数据库 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库 ? 嵌入式/移动客户端使用SQLite ? iOS中数据存储的方式: ? Plist(NSArray\NSDictionary):? 特点: 只能存储系统自带的数据类型, 比如NSDictory, NSArray等等. 自定义的对象无法存储 ?????plist文件存储一般都是存取字典和数组,直接写成plist文件,把它存到应用沙盒当中.

30种mysql优化sql语句查询的方法

1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from

SQL查询语句练习及相关代码

select *from xueshengxinxi where shengao=164 select *from xueshengxinxi where nianling !=23 --子查询:就是使用查询语句查询一列数据出来,然作为其他查询的查询条件参数来使用 --查询身高不在年龄是岁的人的身高范围之内的信息 select *from xueshengxinxi where nianling =22 select *from xueshengxinxi where shenfenzheng

Oracle_查询语句

SQL是结构化查询语言( Structured Query Language)的缩写,它是目前关系数据库系统中通用的标准语言. SQL在字面上虽然称为结构化查询语言,实际上它还包括数据操纵.数据定义.事务控制.安全控制等一系列命令.SQL操作的基本对象是表,也就是关系. 它可以对表中的数据进行查询.增加.删除.修改等常规操作,还可以维护表中数据的一致性.完整性和安全性,能够满足从单机到分布式系统的各种应用需求.SQL是一种非过程化的语言,用户在使用SQL操作数据时,只需要告诉系统做什么,而不需要