??斗地主捕鱼电竞提现秒到 广告位招租 - 15元/月全站展示
??支付宝搜索579087183领大额红包 ??伍彩集团官网直营彩票
??好待遇→招代理 ??伍彩集团官网直营彩票
??络茄网 广告位招租 - 15元/月全站展示
MSSQLServer2000、Oracle、DB2取中间几条数据及连接方法

转载   2018-03-08   浏览量:535


1.MSSQLServer2000、Oracle、DB2取中间几条数据

1)在MSSQLServer2000中取前5用top,取第六名开始3个人的信息。首先将前5名的主键取出来,在检索时排除这5名的前3人即可。

select top 3 * from employee where fnumber not in (select top 5 fnumber from employee order by fsalary desc)order by fsalary desc);

2)在MSSQLServer2005中可通过row_number()

select row_number() over(order by fsalarydesc),fnumber,fname,fsalary,fage from employee where (row_number() over(orderby fsalary desc))>=3 and (row_number() over(order by fsalary desc))<=5;

报错:开窗函数只能出现在select或 order by子句中

修正:用子查询返回第3行到第5行的数据

select * from (select row_number() over(order by fsalary desc) as rownum,fnumber,fname,fsalary,fage from employee) as a where a.rownum >=3 anda.rownum <=5;

3)Oracle中支持开窗函数row_number(),用法与MSSQLServer2005相同,rownum 在Oracle中为保留字,将rownum 换为row_num,在Oracle中定义表的别名时不用as

select * from (select row_number() over(order by fsalary desc) as row_num,fnumber,fname,fsalary,fage from employee) a where a.row_num >=3 anda.row_num <=5;

4)Oracle中有默认的表示行号的rownum,方便查询,但是rownum只能查找前几条,取中间条数的数据时必须借助row_num()

select * from employee where rownum <= 6 order by fsalary desc;

5) DB2

DB2中指出窗口函数row_number(),用法与上一样

取前几条可以用fetch first条数 rows only,而且在order by 之后

select *from employee order by fsalary desc fetch first 6 rows only;

没有直接查范围的功能函数,但是可以用子查询

select *from employee where fnumber not in(select * from employee order by fsalary desc fetch first 5 rows only)
order by fsalary desc fetch first 3 rows only;

2.连接

(1) MySQL:concat(参数…),参数可以是多个,只有一个参数时,可以看做是将这个参数尝试转化为字符串类型值的函数。

concat_ws(分隔符,参数,参数…)

(2) MSSQLServer:"+"拼接

(3) Oracle:"||"拼接

concat(参数,参数):只支持2个参数,如果想支持多个可以用多个concat()嵌套使用

select concat(concat(concat('工号为:',fnumber),'的员工姓名是'),fname) from employee where fname is not null;

转载自:https://www.2cto.com/database/201803/726904.html

招聘 不方便扫码就复制添加关注:程序员招聘谷,微信号:jobs1024



DB2V9备份数据的恢复教程
DB2V9备份数据的恢复教程。在DB2V9的情况下,如果使用自动存储的数据库,备份之后恢复的话可能出现上述报错,必须使用如下办法恢复
DB2 MERGE INTO的使用实例讲解
DB2MERGEINTO的使用实例讲解。DB2中的Merge语句可以将一个表中的数据合并到另一个表中,在合并的同时可以根据条件进行插入、删除、更新等操作,功能非常强大。
MSSQLServer2000、Oracle、DB2取中间几条数据及连接方法
MSSQLServer2000、Oracle、DB2取中间几条数据及连接方法。1)在MSSQLServer2000中取前5用top,取第六名开始3个人的信息。首先将前5名的主键取出来,在检索时排除这5名的前3人即可。
DB2存储过程,循环插入数据(用户自测造大量数据)教程
DB2存储过程,循环插入数据(用户自测造大量数据)教程。表结构如下
DB2SQLError:SQLCODE=-668,SQLSTATE=57016,SQLERRMC=7;ZJTEG.MDS_FXSPOTRATE,DRIVER=3.64.106异常问题解决
DB2SQLError:SQLCODE=-668,SQLSTATE=57016,SQLERRMC=7;ZJTEGMDS_FXSPOTRATE,DRIVER=364106异常问题解决。在dbvisualizer客户端执行下面sql:
ora.racdb2.vipFAILOVER(代码实例)
oraracdb2vipFAILOVER(代码实例)。
db2_data_server_client客户端安装与配置
db2_data_server_client客户端安装与配置。一安装:
一些---DB2数据库操作注意
11W比以下采用方法:deletefromtablewhere……condition……说明:产生交易日志,删除大量数据时,有机会出现交易日志满,出现SQLCODE=-9642全部数据采用方法:truncatetable说明:不会产生交易日志,为最快方式,用于清理临时表等
DB2数据库使用存储过程详解
存储过程(StoredProcedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
db2锁
db2锁