oracle和db2的sql语句区别
2009-09-10 10:42
441 查看
oracle和db2的sql语句区别
document.body.oncopy = function() {if (window.clipboardData) {
setTimeout(function() {
var text = clipboardData.getData("text");
if (text && text.length>300) {
text = text + "/r/n/n本文来自CSDN博客,转载请标明出处:" + location.href;
clipboardData.setData("text", text);
}
}, 100);
}
}
function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.365key.com/storeit.aspx?t='+escape(d.title)+'&u='+escape(d.location.href)+'&c='+escape(t),'keyit','scrollbars=no,width=475,height=575,left=75,top=20,status=no,resizable=yes'));keyit.focus();}
1
、取前
N
条记录
Oracle
:
Select * from TableName where rownum <= N;
DB2
:
Select * from TableName fetch first N rows only;
2
、取得系统日期
Oracle
:
Select sysdate from dual;
DB2
:
Select current timestamp from sysibm.sysdummy1;
3
、空值转换
Oracle
:
Select productid,loginname,nvl(cur_rate,'0') from TableName ;
DB2
:
Select productid,loginname,value(cur_rate,'0') from TableName;
Coalesce(cur_rate,'0')
4
、类型转换
(
8
版有了
to_char,to_date,9
版新增了
to_number
)
Oracle
:
select to_char(sysdate,'YYYY-MM-DD HH24:MI:SS') from dual;
DB2
:
select varchar(current timestamp) from sysibm.sysdummy1;
l
Oracle
数据类型改变函数:
to_char()
、
to_date()
、
to_number()
等;如果仅仅取年,月,日等,可以用
to_char(sysdate, 'YYYY'),to_char('MM') ,to_char('DD')
取得。只取年月日
TRUNC(SYSDATE)
,取时分秒
TO_CHAR(SYSDATE,'HH24:MI:SS')
。
l
DB2
数据类型改变函数:
char()
、
varchar()
、
int()
、
date()
、
time()
等;取得年,月,日等的写法:
YEAR(current timestamp)
,
MONTH(current timestamp)
,
DAY(current timestamp)
,
HOUR(current timestamp)
,
MINUTE(current timestamp)
,
SECOND(current timestamp)
,
MICROSECOND(current timestamp)
,只取年月日可以用
DATE(current timestamp)
,取时分秒
TIME(current timestamp)
。
Char()
是定长字符串(
1-255
),
varchar()
为非定长字符串(
1-32672
)日期
,
时间形态变为字符形态
: char(current date)
,
char(current time)
将字符串转换成日期或时间形态
:TIMESTAMP('2002-10-2012:00:00'),DATE('2002-10-20'),DATE('10/20/2002'),TIME('12:00:00')
l
目前
DB2 V8
也支持
to_char
和
to_date
5
、快速清空大表
Oracle
:
truncate table TableName ;
DB2
:
alter table TableName active not logged initially with empty table;
6
、关于
ROWID
Oracle
它是由数据库
唯一产生的,在程序里可以获得
DB2 v8
也有此功能。
7
、
To_Number
Oracle
:
select to_number('123') from dual;
DB2
:
select cast('123' as integer) from sysibm.sysdummy1;
SELECT CAST ( current time as char(8)) FROMsysibm.sysdummy1
8
、创建类似表
Oracle
:
create table a as select * from b ;
DB2
:
create table a like b ;
CREATE TABLE tab_newAS select col1,col2
…
FROMtab_old DEFINITION ONLY (8
版有效,
9
版无效
)
9
、
decode
方法
Oracle
:
decode
方法(
DECODE(
条件,
值1,
翻译值1,
值2,
翻译值2,...
值n,
翻译值n,
缺省值)
)或者
case
语句
DB2
中只有
CASE
表达式
SELECT id ,name ,CASE
WHEN integer(flag)=0 THEN ‘
假
’ WHEN integer(flag)=1 THEN ‘
真
’ ELSE ‘
异常
’END FROM TEST
或者
SELECT id ,name , CASE integer(flag) WHEN 0 THEN ‘
假
’ WHEN 1 THEN ‘
真
’ELSE ‘
异常
’END FROM TEST
10
、子查询(
8
版,
9
版也支持子查询)
Oracle:
直接用子查询
Db2:with
语句
WITH a1 AS(select max(id) as aa1 from test ) select id ,aa1 from test ,a1
11
、数据类型
比较大的差别:
Oracle
:
char 2000
DB2: char 254
Oracle: date datetime
Db2:
DATE
:日期
TIME
:时间
TIMESTAMP
:日期时间
相关文章推荐
- oracle和db2的sql语句区别
- db2 数字转换字符 oracle和db2的sql语句区别
- DB2、ORACLE SQL写法的主要区别
- 常用SQL查询语句 Oracle中Union,Union All,Intersect,Minus的有什么区别
- MySQL / SQL Server / Oracle / MS Access的sql语句联系区别总结
- MySQL / SQL Server / Oracle / MS Access的sql语句联系区别总结
- mysql与oracle的 sql语句区别
- Oracle、DB2、SQLSERVER、Mysql、Access分页SQL语句
- Access、SQLServer、Oracle常见SQL语句应用区别
- SQL SERVER ,ORACLE 8i,DB2三种数据库分页SQL语句
- oracle,mysql,sqlserver,db2取前十条记录sql语句
- Access、SQLServer、Oracle常见SQL语句应用区别
- 转载:ORACLE和SQL SERVER的SQL语句中的一些区别
- Oracle、DB2、SQLSERVER、Mysql、Access分页SQL语句梳理
- ORACLE和SQL SERVER的SQL语句中的一些区别
- Oracle、DB2、SQLSERVER、MySQL、Access分页SQL语句
- DB2、ORACLE SQL写法的主要区别
- Oracle PK DB2 基础sql区别
- Oracle、DB2、SQLSERVER、Mysql、Access分页SQL语句
- sql server、db2、oracle 存储过程动态sql语句示例