`
firstmanlx
  • 浏览: 3872 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle和db2 sql语句的区别

阅读更多
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:日期时间
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    SQL_Server,Oracle,DB2数据库SQL语句比较

    标题与描述均聚焦于SQL Server, Oracle, 和DB2数据库中的SQL语句比较,这是一个对IT专业人士特别是数据库管理员(DBA)、开发人员以及对数据库技术感兴趣的人来说极为实用的主题。以下是对给定文件中提及的关键知识点...

    Oracle迁移到DB2 SQL语句差异

    ### Oracle迁移到DB2 SQL语句差异 在IT项目的实施过程中,可能会遇到客户提出更换数据库的需求,例如从Oracle迁移到DB2。这种情况下,除了要考虑配置上的差异外,还需要关注SQL语句的不同之处。以下是对Oracle与DB2...

    DB2与ORACLE常用语句对照

    提供的两个文档"ORACLE到DB2转换.doc"和"ORACLE转DB2对照.doc"应该包含更详尽的对照和转换指南,帮助用户更准确地进行SQL语句的调整。在进行数据库迁移时,确保充分理解这些差异,并进行充分的测试,以确保数据的...

    oracle和db2连接数据库

    总的来说,Java通过JDBC接口连接Oracle和DB2数据库是常见的开发任务,涉及到的知识点包括:JDBC驱动管理、数据库连接URL构建、数据库连接的生命周期管理以及SQL语句的执行。理解并熟练掌握这些概念,对于Java开发者...

    ORACLE与DB2的区别和转换

    ### ORACLE与DB2的区别和转换 #### 一、简介 在数据库领域,Oracle和DB2都是非常流行的数据库管理系统。它们各自具有独特的特性和优势,并且广泛应用于不同的业务场景中。对于那些需要在Oracle和DB2之间进行数据...

    ORACLE转DB2对照全解

    动态语句是指在运行时动态构建并执行的SQL语句,这对于需要根据不同的输入构建不同查询逻辑的应用场景非常有用。 **Oracle:** ```sql EXECUTE IMMEDIATE 'SELECT * FROM table WHERE condition'; ``` **DB2:** `...

    oracle与db2对比

    Oracle 和 DB2 是两种广泛应用的关系型数据库管理系统,...使用 `&lt;sql apply-to="oracle"&gt;&lt;/sql&gt;` 和 `&lt;sql apply-to="db2"&gt;&lt;/sql&gt;` 标签可以帮助区分针对不同数据库的特定代码段,确保代码能够在目标平台上正确运行。

    SQL语句教程 写法大全

    同时,本教程还涵盖了 SQL 高级知识,如 Top 语句、Like 语句、通配符、In 语句、Between 语句、Aliases 语句、Join 语句、Inner Join 语句、Left Join 语句、Right Join 语句、Full Join 语句、Union 语句、Select ...

    db2和oracle的区别.docx

    例如,DB2使用SQL授权语句,而Oracle依赖于角色和对象权限。 六、备份和恢复 两个数据库系统都支持备份和恢复功能,但方法和工具各有特色。DB2使用db2backup和db2restore命令,而Oracle则有RMAN(恢复管理器)等...

    java的 oracle 和db2驱动

    在Java编程中,数据库连接是不可或缺的部分,Oracle和DB2作为两种广泛应用的关系型数据库系统,它们的驱动在Java中通过JDBC(Java Database Connectivity)进行交互。本文将深入讲解Java与Oracle及DB2数据库的连接...

    MS、ORACLE等SQL语句大全

    SQL,全称Structured Query Language,是一种用于管理关系数据库的标准语言,包括了数据查询、数据操纵、数据定义和数据控制等功能。在本篇文章中,我们将详细探讨SQL语法的基础知识,涵盖创建数据库、删除数据库、...

    oracle或db2的建表SQL语句解析

    本篇将深入解析Oracle和DB2的建表SQL语句,并介绍如何将这些语句从文本文件读取并转化为Java对象,最后序列化存储为.dm文件。 首先,让我们了解Oracle和DB2的建表SQL语句的基本语法。在Oracle中,创建表通常采用`...

    oracle连接db2数据库的步骤

    本文将详细介绍如何在 Oracle 环境中配置和连接到 DB2 数据库,包括获取必要的信息、配置 ODBC 数据源、修改 Oracle 相关配置文件以及验证连接。以下是一步步的详细步骤: 1. **获取 DB2 数据库信息**: 首先,你...

    如何将DB2数据库中的大对象(BLOB,CLOB)数据类型复制到Oracle数据库中

    创建源表(DB2)和目标表(Oracle)的控制表。 b. 注册源表到复制数据源。 c. 定义预定集,指定源表到目标表的映射。 d. 在预定集中添加计算列“flag”,设置为常量值“1”。 e. 手动在Oracle目标表中添加BLOB...

    基于ORACLE与DB2的数据性能 调整和优化问题研究

    Oracle的优化器负责选择执行SQL语句的最佳路径,它基于统计信息和成本估算,通过CBO(Cost-Based Optimizer)选择最佳执行计划。优化器会考虑表的大小、索引、分区等因素,以最低的成本完成查询。 2.2 DB2 优化器 ...

    舞动DB2之2_从Oracle到DB2开发 从容转身.rar

    开发者需要修改SQL语句、存储过程、触发器等以适应DB2的环境。此外,应用层的代码、连接池配置等也需要进行调整。 3. 性能优化:DB2在某些方面可能有更优的性能表现,如行存储和列存储的灵活选择、对SQL的优化能力...

    oracle+db2+sqlserver驱动

    它包含Oracle JDBC Driver,遵循Java Database Connectivity (JDBC) API,使Java程序能够执行SQL语句和管理Oracle数据库。 2. **Oracle 9i到11g**: - Oracle 9i到11g是Oracle数据库的不同版本,9i代表第9代,11g...

    数据库表数据转为insert sql语句

    Data row to insert sql是一个小的工具软件,可以将数据库表中指定数据转换成相应的insert sql语句。目前支持的数据库类型为oracle,db2,ms sql server。 目前还有一些缺陷,还有待完善,具体如下: 1、对ms sql ...

Global site tag (gtag.js) - Google Analytics