精华内容
下载资源
问答
  • Oracle中查询第一条和最后一条数据

    千次阅读 2019-06-14 11:58:48
    1.Oracle中查询数据库表的第一条数据 SELECT * FROM (SELECT * FROM "user" ORDER BY "id") WHERE ROWNUM = 1 2.Oracle中查询数据库表的最后一条数据 SELECT * FROM (SELECT * FROM "user" ORDER BY "id" DESC)...

    1.Oracle中查询数据库表的第一条数据

    SELECT * FROM (SELECT * FROM "user" ORDER BY "id") WHERE ROWNUM = 1

    2.Oracle中查询数据库表的最后一条数据

    SELECT * FROM (SELECT * FROM "user" ORDER BY "id" DESC) WHERE ROWNUM = 1

     

    展开全文
  • Oracle随机查询n条数据

    千次阅读 2017-11-30 08:30:33
    select empno,empname from ( select empno,empname from emp order by dbms_random.value()) where rownum 上述的3就是随机取的n,所以这里的3可以随意赋值,注意这里必须是先排序再随机取值。
    select empno,empname from ( select empno,empname from emp order by dbms_random.value()) where rownum <3

    上述的3就是随机取的n,所以这里的3可以随意赋值,注意这里必须是先排序再随机取值。

    展开全文
  • oracle取最新一条数据

    万次阅读 2019-05-20 17:53:40
    最近在做一个项目,数据库就是用的oracle,正好有个获取最新一条数据的需求。 在网上参考了他人的sql,放在自己这儿就是不行。下边是他们的sql SELECT * FROM ( SELECT *,ROWNUM rn FROM t ORDER BY date_col DESC ...

    好几年没用过oracle了,都忘记了。
    最近在做一个项目,数据库就是用的oracle,正好有个获取最新一条数据的需求。
    在网上参考了他人的sql,放在自己这儿就是不行。下边是他们的sql

    SELECT * FROM (
    	SELECT *,ROWNUM rn FROM t ORDER BY date_col DESC
    ) WHERE rn = 1
    

    刚开始放到自己的库里是会报错的"FROM keyword not found where expected"

    SELECT * FROM (
    	SELECT t.*,ROWNUM rn FROM table t ORDER BY t.date DESC
    )  t1
    WHERE t.rn = 1
    

    这样改完之后,sql正确了,但是取出来的数据跟下边这条sql是一样的。

    	SELECT t.*  FROM table t WHERE ROWNUM = 1
    

    后来想到了把ROWNUM重新排序,也就是先排序,再通过ROWNUM来取第一条。成功

    SELECT 
    	t1.*, ROWNUM 
    FROM(
    	SELECT * FROM table t ORDER BY date DESC
    ) t1
    WHERE rownum = 1;
    
    展开全文
  • 数据库操作中,经常会因为导数据造成数据重复,需要进行数据清理,去掉冗余的数据保留正确的数据一:重复数据根据单个字段进行判断1、首先,查询表中多余的数据,由关键字段(name)来查询。select * from 表 ...

    数据库操作中,经常会因为导数据造成数据重复,需要进行数据清理,去掉冗余的数据,只保留正确的数据

    一:重复数据根据单个字段进行判断

    1、首先,查询表中多余的数据,由关键字段(name)来查询。

    select * from  表   where   重复列    in (select   重复列     from    表   group by   重复列名   having count(重复列)>1)

    2、删除表中重复数据,重复数据是根据单个字段(Name)来判断,只留有rowid最小的记录

    delete from    表     where    重复列  in 

    (select  重复列   from   表    group by  重复列   having count(重复列) >1) 

    and rowid not in (select min(rowid) from 表 group by    重复列  having count(重复列)>1)


    二:重复数据根据多个字段进行判断

    1、首先,查询表中重复数据,由关键字段(Name,UNIT_ID)来查询。

    select * from OA_ADDRESS_BOOK book1 where (book1.name,book1.unit_id) in 
    (select book2.name,book2.unit_id from OA_ADDRESS_BOOK book2 group by  book2.name,book2.unit_id  having count(*)>1)

    2、删除表中重复数据,重复数据是根据多个字段(Name,UNIT_ID)来判断,只留有rowid最小的记录

    delete from OA_ADDRESS_BOOK a where (a.Name,a.UNIT_ID) in 
    (select Name,UNIT_ID from OA_ADDRESS_BOOK group by Name,UNIT_ID having count(*) > 1) 
    and rowid not in (select min(rowid) from OA_ADDRESS_BOOK group by Name,UNIT_ID having count(*)>1)

    3、查询表中重复数据,重复数据是根据多个字段(Name,UNIT_ID)来判断,不包含rowid最小的记录

    select name,unit_id from OA_ADDRESS_BOOK a where (a.Name,a.UNIT_ID) in 
    (select Name,UNIT_ID from OA_ADDRESS_BOOK group by Name,UNIT_ID having count(*) > 1) 
    and rowid not in (select min(rowid) from OA_ADDRESS_BOOK group by Name,UNIT_ID having count(*)>1)


    二:重复数据根据多个字段进行判断

    1、首先,查询表中重复数据,由关键字段(Name,UNIT_ID)来查询。

    select * from OA_ADDRESS_BOOK book1 where (book1.name,book1.unit_id) in 
    (select book2.name,book2.unit_id from OA_ADDRESS_BOOK book2 group by  book2.name,book2.unit_id  having count(*)>1)

    2、删除表中重复数据,重复数据是根据多个字段(Name,UNIT_ID)来判断,只留有rowid最小的记录

    delete from OA_ADDRESS_BOOK a where (a.Name,a.UNIT_ID) in 
    (select Name,UNIT_ID from OA_ADDRESS_BOOK group by Name,UNIT_ID having count(*) > 1) 
    and rowid not in (select min(rowid) from OA_ADDRESS_BOOK group by Name,UNIT_ID having count(*)>1)

    3、查询表中重复数据,重复数据是根据多个字段(Name,UNIT_ID)来判断,不包含rowid最小的记录

    select name,unit_id from OA_ADDRESS_BOOK a where (a.Name,a.UNIT_ID) in 
    (select Name,UNIT_ID from OA_ADDRESS_BOOK group by Name,UNIT_ID having count(*) > 1) 
    and rowid not in (select min(rowid) from OA_ADDRESS_BOOK group by Name,UNIT_ID having count(*)>1)
    展开全文
  • oracle查询最新100条数据

    万次阅读 2018-09-27 11:28:12
    查询速度还可以 select * from (select * from fbcn_service order by service_id desc) where rownum &lt; 101
  • 结合order by和rownum来做: --第一条 select * from bdatag_tag order by tag_id where rownum = 1; --最后一条 select * from bdatag_tag order by tag_id desc where rownum = 1;
  • oracle 获取一条数据

    千次阅读 2014-05-20 16:55:52
    SELECT * FROM ( SELECT PI.INDEXCODE FROM PLA_WARNING_CONFIG PWC LEFT JOIN PLA_INDEXCONTENT PI ON PWC.PCONID = PI.PCONID WHERE PI.Planid = '0E4K0NVI1P01001B' AND INDEXCODE ) WHERE ROWNUM
  • Oracle查询当前某条数据的前一行数据与后一行数据 oracle可以使用 lead、lag 函数来查询已有记录的下一条、上一条记录。 表结构如下: 如要查询Staffno是6-1102的前一条记录: ...
  • select t.name1,t.name2,t.zx from (select row_number()over(partition by name1 order by zx desc)rn, test.* from test)t where t.rn=1;
  • 现要查询出每个车牌号最新的一条 SELECT CARNUM ,CREATEDATE, rank() OVER(PARTITION BY CARNUM ORDER BY CREATEDATE DESC)MAXCAR FROM MYTEST 可以看出来,查询的时候 都给加上了序号,然后我们嵌套一层, ...
  • Oracle查询重复数据并删除,保留一条记录     前言   项目中,在“资源目录-在线编目”中,资源项子表存在多条重发数据,需要进行数据清理,删除重发的数据,最终保留一条相同的数据。   操作的表名:R_...
  • oracle数据库查询,某个字段相同的数据只一条的方法 select s.* from (select * from t_audit_log t ,row_number() over(partiton by operator_id oder by log_id) as groupcx) s where s.group.x=1; 其中operator...
  • oracle 查询前30条数据

    千次阅读 2014-06-06 16:47:49
     select * from (select a.*,rownum as rn from tetm_ad_type a) b ...--表名不能用as 字段取别名,直接在表名后面跟个newName 就算别名了,字段 名可以用as 取别名。 其实我都是乱写的。  oralce
  • 分页查询,每页查询10条数据 数据库版本:Oracle 11g 解答: --创建测试数据 create table tb_sales(year int,season int,sale int); --插入数据 insert into tb_sales values(2017,1,11); insert into tb_...
  • oracle数据库,情景:表(客户-业务员)中数据都不完全重复,但是可能多条数据其中某些字段重复。我想要取得表中符合条件的记录,但是这些记录中的客户id和客户名称发生重复的话只能留个。 如上图我想找出“冯...
  • Oracle数据库插入一条数据

    千次阅读 2014-05-05 16:44:54
    这几天搞了一下Oracle数据库,可能用sql server...向Oracle服务器插入一条数据 --不管什么格式通通用''引号引起来。不过INTEGER格式的还是别用引号 insert into T_SITE VALUES( 8, --注意主键别与表里的其他主键冲
  • delete from t_account where feedate in (  select feedate  from t_account  group by feedate  having count(1)>1 ) and id not in (  select min(id)  from t_account ... group by
  • //取查询出来结果集中的第一条数据 select *from (select * from 表明 order by id desc ) where rownum=1
  • Oracle查询前N条数据

    千次阅读 2019-04-04 21:59:12
    SELECT * FROMEMPWHERE ROWNUM <= 10 ORDER BY salDESC; 在oracle中是使用ROWNUM 来表示前10的信息。
  • 随机查询出10条数据 数据库版本:Oracle 11g解答: --创建测试数据 create table tb_sales(year int,season int,sale int); --插入数据 insert into tb_sales values(2017,1,11); insert into tb_sales values...
  • select * from ( select t.pc_code, t.pc_name, t.pc_date, rownum row_num from TEST_PC_FUND_INFO t where t.pc_code = '******' ...(3)最终输出‘row_num = ‘1’’的数据,也就保证了显示一条数据
  • 有如上数据,想要这样的结果: 按名字分组,取最大值 1 name1 809 4 name2 796 6 name3 888 方案1: 先按name分组,再每个name的最大值,再结果。 select t.* from KR_AA t where num = (select max(num) from ...
  • 一下是oracle/mysql分组查询查出每组数据的第一条数据: 表数据: create table tb_name (  column1 int,  column2 varchar,  column3 int,  column4 date ) 查出时间上最新入库的记录,则: select column1, ...
  • oracle数据库,情景:表(客户-业务员)中数据都不完全重复,但是可能多条数据其中某些字段重复。我想要取得表中符合条件的记录,但是这些记录中的客户id和客户名称发生重复的话只能留个。 如上图我想找出“冯...
  • oracle: 按时间排序,查询第一条数据

    万次阅读 2019-01-29 09:35:56
    有些业务需求,我们需要获取排序后的第一条数据,Oracle需要一个子查询来实现. with t as (select * from t_table order by createdTime desc) select * from t where rownum =1 ...
  • update TBL_SQZL set HYJG = 1 where ID = ( select ID from ( select ID from TBL_SQZL ...select准确查出一条数据,整体执行的时候就一直转圈圈……表数据有两万四千多条,是需要优化还是怎么滴?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 192,279
精华内容 76,911
关键字:

oracle怎么只查一条数据