Oracle切换为postgresql-sql语法修改

本文详细列举了从Oracle迁移至PostgreSQL时,SQL语法需要进行的主要修改,包括大小写敏感性、NVL替换、表别名、行号表达式、数据类型转换、时间函数、日期加减、随机数生成以及查询数据库元数据的方法等关键点。
摘要由CSDN通过智能技术生成

1、pg对大小写不敏感,查询大写的要加双引号,迁移数据是建议表名和字段名小写;
2、返回第一个非空的:NVL()改为COALESCE() (合并; 结合; 联合);
3、pg中要加‘表别名’:FROM(…) A;
4、行号:ROWNUM 改为ROW_NUMBER() OVER();
5、字段别名为name时,要加as
6、select 1 from dual 改为 select 1;
7、数据类型:number(10,1) 改为 numeric(10,1)
8、当前时间:sysdate改为now()或current_timestamp
9、decode 函数改为case when
10、in和not in在数据量效率很慢,要改成 exists 、not exists;
11、pg中的“/”“%”,/在pg中只保留整数,且只舍不入;
%取模,四舍五入;要想/保留小数,类型转换为numeric。
转换方法:
1)字段A::numeric/字段B::numeric;
2)cast(字段A as numeric)/cast(字段B as numeric);
12、limit m offset n从第n行开始取m行数据,一般和order by一起使用,
因为它是无序的会有重复数据;
13、oracle中int()为向下取整函数,pg中floor()向下取整,round()四舍五入;
14、序列:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值