可以用rownum来查询一条记录. 如emp表中有如下数据. 要求查询deptno为20的,但只取一条记录,可用如下语句: select * from emp where deptno=20 and rownum<=1; 查询结果: http://zhidao.baidu.com/link?url=9Vd1VkPzunq5Rb3ApltIU1ZXBWgrHJwOgmfMMH7T4m9wwWRSfkd8Hxz0je4RmRM_Vo6Dj0Gcz2LXkdn_zgQX__
在Oracle中实现select top N:由于Oracle不支持select top 语句,所以在Oracle中经常是用order by 跟rownum的组合来实现select top n的查询.简单地说,实现方法如下所示:select 列名1 ...列名n from(select 列名1 ...列名n from 表名 order by 列名1)where rownum <=N(抽出记录数)order by rownum asc 如:select id,name from (selec
oracle版本:11g oracle存储过程,使用游标的方式返回多行.多列数据集合: CREATE OR REPLACE PROCEDURE SP_DATA_TEST( /*P_ID IN INT,*/ --传入参数,不需要可注释 O_CUR OUT SYS_REFCURSOR --输出数据,本文重点描述 ) IS BEGIN OPEN O_CUR FOR SELECT * FROM (SELECT 'A', SYSDATE - 1 FROM DUAL UNION ALL SELECT 'B'
from: https://sourceforge.net/p/cx-oracle/mailman/message/27145597/ I'd do it with a "row factory", here are two examples, one which builds a dictionary, the other one builds a "named tuple" and is very similar to sqlite3.Row. def make
select * from (select a.*,rownum as rn from tetm_ad_type a) b where b.rn<30 --表名不能用as 字段取别名,直接在表名后面跟一个newName 就算别名了.字段 名能够用as 取别名. 事实上我都是乱写的. oralce
SQL查询前10条的方法为: 1.select top X * from table_name --查询前X条记录,可以改成需要的数字,比如前10条. 2.select top X * from table_name order by colum_name desc --按colum_name属性降序排序查询前X条记录,“order by” 后紧跟要排序的属性列名,其中desc表示降序,asc表示升序(默认也是升序方式). 3.select top n * from (select top
Oracle 查询出来的数据取第一条 --------------------------------------------------------------------------- 转载自:http://www.itpub.net/thread-246442-1-1.html select * from (select * from <table> order by <key>) where rownum=1; select * from (select * from &l
select * from aa01_2014 where aaa001=(select c.p from (select aaa001,lag(aaa001,1,0) over (order by aaa001) as p from aa01_2014) c where c.aaa001='8a9299ec522f54f401522f81eedc0007') ; select * from aa01_2014 where aaa001=(select c.n from (select aa
ORA-01427: 单行子查询返回多个行 前几天开发的同事反馈一个问题,说前台系统报出了ORA错误,希望我们能看看是什么原因.java.sql.SQLException: ORA-01427: single-row subquery returns more than one row我一看到这个错误的第一反应就是应该是sql语句的问题,然后开发同事反馈这个程序已经用了蛮长时间了,现在突然报出了错误. 简单沟通之后,我得到了对应的sql语句.SELECT ID, PROJECTNAME, GRA
Sql Server 函数的操作实例!(返回一条Select语句查询后的临时表) SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE FUNCTION dbo.csjcsj() RETURNS TABLE AS RETURN ( SELECT * from xx ) GO 这是创建代码,执行代码如下: select * from csjcsj() 当然,也可以传参数!
SELECT * FROM SUSE_DEV.PROJECT_LISTING INNER JOIN SUSE_DEV.PROJECT_AUCTION ON SUSE_DEV.PROJECT_LISTING.PROJECT_CODE on ( SELECT * FROM SUSE_DEV.PROJECT_AUCTION WHERE SUSE_DEV.PROJECT_AUCTION.GMT_START > SYSDATE ) 这段SQL里的子查询是肯定会返回多条的.一般来说,用ON是根本不能解决这样
oracle查询:取出每组中的第一条记录按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info group by type; 注意:select 后面的列要在group by 子句中,或是用聚合函数包含,否则会有语法错误. 方法二: SELECT * FROM(SELECT z.type , z.code ,ROW_NUMBER()OVER(PARTITION BY z.type ORDER BY z.cod
-- 错误的写法 insert into t_b_partner_vehicle(id, partner_id, vehicle_id) (seq_t_b_partner_vehicle.nextval,121, (select id from t_b_car_info where org_id in(1441,1427))) -- Error 单行子查询返回多行 -- 正确的写法 insert into t_b_partner_vehicle(id, partner_id, vehicle_i
现在做两个版本的系统,一个用的数据库是Access,另一个就是Oracle了.每个数据库支持的的查询SQL语句都有所区别,这里主要针对Access和Oracle做 记录. 首先贴出遇到问题最多的一条语句(现在可以通过运行),同时查询三个表:PUB_LOG(主),PUB_LOGTYPE(副),PUB_USER(副),提示的错误有:字段不允许.列 名无效,缺失左括号. Access:=>"select m.ID AS ID,t.FULLNAME as LOGTYPE,m.INFO a