zoukankan      html  css  js  c++  java
  • sql Server与ORACLE的语法区别 自用整理!

    /*整理背景201403订单中心数据库迁移(整理Oracle与SQL的差异)
    整理规则第一句为SQL Server 第二句为Oracle*/
    --数据类型
    int integer
    varchar varchar2
    double number(25,10)
    datetime date
    /*
    --临时表
    ORACLE 数据库在使用临时表时,要先将临时表建到数据库中,然后才能使用临时表。
    */

    /*
    --多条语句同时放在一起执行时
    begin
    语句1;
    语句2;
    语句3;
    。;。;。;
    end;
    */
    /*
    非常有用的函数
    floor(参数) 去除小数点后的所有小数位
    coalesce(参数1,参数2,参数3,参数4) 返回第一个不为null的值,若都为null则返回null
    -->ORACLE LPAD(参数,长度,填充值) 向左填充 RPAD(参数,长度,填充值) 向右填充
    */

    --字符串拼接语法
    select 'a'+'b';
    select 'a'||'b' from dual;
    --查询第一条数据
    select top 1 from Table1;
    select * from Table1 where rownum<2;
    --查询一个字段如果是空则替换默认值
    select ISNULL('字段1',0) from Table1;
    select nvl('字段1',0) from Table1;
    --截取字符串
    select SUBSTRING('字段1','开始位置','截取长度') from Table1;
    select SUBSTR('字段1','开始位置','截取长度') from Table1;
    --去字段值的长度
    select len('字段1') from Table1;
    select length('字段1') from Table1;
    --数据类型转换
    select CONVERT('字段1',datatype) from Table1;select CAST('字段1' as dataType) from Table1;
    select CAST('字段1' as dataTye) from Table1;
    --注:在数据类型转换过程中cast语法select cast(1.2 as int) select cast(1.6 as int)这两个结果在sql server中
    --为1 oracle中结果为1,2使用过程中一定要注意
    --左右截取
    select left('123',2)-->12
    select right('123',2)-->23
    --ORACLE中没有左右截取,实现同样的效果用SUBSTR。

    --Update语句的区别(多表联合更新)
    --注:单张表更新SQL与ORACLE一样
    update Table1 set 字段1='value1',字段2='value2'
    from Table2,Table1
    where Table2.字段1=Table1.字段1 and Table2.字段2=Table1.字段2

    MERGE INTO Table1
    USING Tabel2
    ON(Table2.字段1=Table1.字段1 and Table2.字段2=Table1.字段2)
    WHEN MATCHED THEN UPDATE SET
    字段1='value1',字段2='value2'

    UPDATE Table1 set 字段1='value1' where exists
    (select 1 from Table2
    where Table1.字段2=Table2.字段2
    and Table1.字段2='字段2')
    --Delete语句
    --注:单张表的删除语句SQL与ORACLE一样
    Delete from Table1,Table2 where
    Table2.字段1=Table1.字段1 and Table2.字段2=Table1.字段2

    Delete from Table1 where exists
    (select 1 from Table2
    where Table2.字段1=Table1.字段1
    and Table2.字段2=Table1.字段2)

    --发现错误请指出,望各位不吝赐教!

  • 相关阅读:
    Linux NFS 和 Samba 共享配置
    ORA00600 internal error code, arguments [%s] [%s] [%s] [keltnfyldmInit] [46] [1] 错误的解决方法
    Linux 平台下 RMAN 全备 和 增量备份 shell 脚本
    dba_tables 和 dba_segments 表中 blocks 的区别
    RMAN 同机复制数据库
    如何 搭建 RMAN 备份平台
    RMAN 系列(五) RMAN 还原 与 恢复
    dba_tables 和 dba_segments 表中 blocks 的区别
    用RMAN复制 搭建 物理 Data Gurad 环境
    企业管理器(OEM)介绍: Grid Control 和 Database Control
  • 原文地址:https://www.cnblogs.com/cwgyn/p/3619868.html
Copyright © 2011-2022 走看看