返回顶部
首页 > 资讯 > 数据库 > PostgreSQLとOracleのsql差异
  • 772
分享到

PostgreSQLとOracleのsql差异

摘要

postgresqlとoracleのsql差异   1.rownum (1)Oracle分页查询使用rownum,PostgreSQL使用limit offset ORACLEPOSTGRESQL select * fr


	PostgreSQLとOracleのsql差异
[数据库教程]

postgresqloraclesql差异

 

1.rownum

(1)Oracle分页查询使用rownum,PostgreSQL使用limit offset

ORACLEPOSTGRESQL
select * from (select rownum r,e.* from emp e where rownum <=5) t where r>0; select * from emp limit 5 offset 0;

 

 

 

(2)Oracle中rownum=1,PostgreSQL中使用limit 1

ORACLEPOSTGRESQL
select * from emp where rownum = 1; select * from emp limit 1;

 

 

 

(3)Oracle中序号列rownum,PostgreSQL使用窗口函数

ORACLEPOSTGRESQL
select rownum,t.* from emp t; select row_number() over(), t.* from emp t;

 

 

 

2.系统日期

ORACLEPOSTGRESQL
SYSDATE current_timestamp, current_date

 

 

 

3.delete语句

Oracle delete语句可以没有from,pg必须要有from

ORACLEPOSTGRESQL
delete from emp where empno = xxx; delete emp where empno = xxx delete from emp where empno = xxx

 

 

 

4.类型自动转换

Oracle支持类型自动转换,例如数字自动换换为字符串等;PG中需要显示转换,或者添加CAST

 

5.子查询别名

PostgreSQL在from关键字后的子查询必须要有别名,Oralce可以没有。

 

6. group by having

PG having语句必须在group by之后,oracle可以在group by之前

 

7.递归查询

Oracle中使用start with … connect by…, PG中使用with recusive

ORACLEPOSTGRESQL
select * from larearrelation where rearedgens = 1 and rearflag = 1 and rearlevel = ‘01’ connect by prior agentcode = rearagentcode start with rearagentcode = ‘10032226’; with recursive rs as ( select * from larearrelation where rearagentcode = ‘10032226’ uNIOn all select a. *from larearrelation a, rs where a.rearagentcode = rs.agentcode ) select ** from rs where rearedgens = 1 and rearflag = ‘1’ and rearlevel = ‘01’

  

8.update语句别名

postgresql中update语句时,set的字段不能有别名

ORACLEPOSTGRESQL
update emp t set t.name = ‘xxx’ where t.empno = 2 update emp set name = ‘xxx’ where empno = 2

 

 

 

9. 日期相减

oracle日期相减自动转换为数字,结果为相差的天数。 pg日期相减为interval类型,得到相差天数需要进行类型转换

 

10.递归查询中的level

oracle的递归查询中level表示查询深度(或者递归层次),在PG中没有此含义的关键字,需要自行在with recursive实现

ORACLEPOSTGRESQL
select max(level) from larearrelation where rearedgens = 1 and rearflag = 1 and rearlevel = ‘01’ connect by prior agentcode = rearagentcode start with rearagentcode = ‘10032226’; with recursive rs as ( select larearrelation.*, 1 depth from larearrelation where rearagentcode = ‘10032226’ union all select a./**, rs.depth + 1 depth from larearrelation a, rs where a.rearagentcode = rs.agentcode ) select max(rs.depth) from rs where rearedgens = 1 and rearflag = ‘1’ and rearlevel = ‘01’

 

 11.序列的调用

ORACLEPOSTGRESQL
select seqname.nextval from dual; select nextval(‘seqname’)

 

 

 

12.外连接

Oralce外连接支持使用 (+), PostgreSQL需使用left jion或者right join标准sql语法

 

13.distinct去重复

oracle支持unique关键字去重复,pg中只能使用distinct

 

14.字符串分割

ORACLEPOSTGRESQL
listagg string_agg

 

 

 

15.集合相减

ORACLEPOSTGRESQL
Minus except

 

 

 

16.null与 ‘‘

null和’’在oracle中是一致的,最终都会存储为null,在PG中会进行区分

 

17.不等于

Oracle中 ! =< >操作符中间允许有空格,PG中不可以

 

18.别名

PG中无效的别名,可以尝试加as关键字,例如name

 

19.正则表达式

ORACLEPOSTGRESQL
SELECT REGEXP_SUBSTR(‘17,20,23’,’,+’,1,1,’i’) FROM DUAL; select (regexp_matches(‘17,20,23’, ‘,+’))[1]

 

 

 

20.字段大小写

oracle字段名大写,PG字段名小写

 

 

PostgreSQLとOracleのsql差异

原文地址:https://www.cnblogs.com/bors/p/PostgreSQL_Oracle.html

您可能感兴趣的文档:

--结束END--

本文标题: PostgreSQLとOracleのsql差异

本文链接: https://lsjlt.com/news/8008.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PostgreSQLとOracleのsql差异
    PostgreSQLとOracleのsql差异   1.rownum (1)Oracle分页查询使用rownum,PostgreSQL使用limit offset ORACLEPOSTGRESQL select * fr...
    99+
    2015-04-14
    PostgreSQLとOracleのsql差异 数据库入门 数据库基础教程 数据库 mysql
  • MySQL与Oracle SQL语言差异有哪些
    小编给大家分享一下MySQL与Oracle SQL语言差异有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!数据类型编号ORA...
    99+
    2024-04-02
  • MySQL与Oracle在SQL语句写法上有哪些差异
    下面讲讲关于MySQL与Oracle在SQL语句写法上有哪些差异,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL与Oracle在SQL语句写法上有哪些差异这篇文章你一定...
    99+
    2024-04-02
  • MySQL与Oracle差异有哪些
    这篇文章主要为大家展示了“MySQL与Oracle差异有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL与Oracle差异有哪些”这篇文章吧。其它编...
    99+
    2024-04-02
  • Google Cloud SQL 和 Cloud Spanner 之间的差异
    Cloud SQL 和 Cloud Spanner 是在 GCP 上运行的基于云的解决方案的示例。您可以使用公共云中提供的各种服务来扩展数据库。在比较云数据库时,必须考虑“NoSQL”和“SQL”数据库之间的显着区别。我们将比较 Cloud...
    99+
    2023-10-22
  • Oracle rman怎么恢复时间差异
    要使用Oracle RMAN恢复时间差异,您可以按照以下步骤进行操作: 确定要恢复的时间点:确定要将数据库恢复到的特定时间点。这...
    99+
    2024-04-09
    Oracle
  • oracle怎么比较两个表的差异
    要比较两个Oracle表的差异,可以使用以下方法:1. 使用MINUS运算符:在Oracle中,可以使用MINUS运算符来比较两个表...
    99+
    2023-08-09
    oracle
  • oracle怎么比对两张表的差异
    在Oracle中,可以使用MINUS运算符来比对两张表的差异。MINUS运算符用于从第一个查询的结果中减去第二个查询的结果,并返回只...
    99+
    2024-04-09
    oracle
  • SQLite与SQL差异的常见问题有哪些
    这篇文章主要介绍了SQLite与SQL差异的常见问题有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、常见问题汇总1 TOP这是一个大...
    99+
    2024-04-02
  • MySQL和PostgreSQL在多表连接算法上的差异有哪些
    这篇文章主要介绍MySQL和PostgreSQL在多表连接算法上的差异有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!我们知道mysql没有hash join,也没有merge ...
    99+
    2024-04-02
  • oracle怎么比较两个表数据差异
    在Oracle数据库中,可以使用以下方法比较两个表之间的数据差异: 使用MINUS操作符:可以使用MINUS操作符来比较两个表之间...
    99+
    2024-04-09
    oracle
  • PostgreSQL与Oracle的sql区别有哪些
    本篇内容介绍了“PostgreSQL与Oracle的sql区别有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学...
    99+
    2024-04-02
  • oracle怎么对比两个表中数据差异
    要对比两个表中的数据差异,可以使用Oracle中的MINUS操作符或者使用JOIN操作来实现。以下是分别使用这两种方法进行数据差异对...
    99+
    2024-04-30
    oracle
  • SQL Server怎么还原完整备份和差异备份
    本篇内容主要讲解“SQL Server怎么还原完整备份和差异备份”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL Server怎么还原完...
    99+
    2024-04-02
  • 从性能到功能:探讨MySQL和SQL Server的差异
    MySQL和SQL Server是两个非常流行的关系型数据库管理系统(RDBMS),在实际使用中有着一些重要的功能和性能差异。本文将探讨这两个数据库管理系统之间的差异,并通过具体的代码...
    99+
    2024-04-02
  • 相同sql不同机器上效率差异case有哪些
    这篇文章将为大家详细讲解有关相同sql不同机器上效率差异case有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。 一个用户问题,数据从ECS迁移到RDS,相同的语句...
    99+
    2024-04-02
  • 使用 SQL 或 ABAP 程序添加条件以及性能差异
    由于只有 500 个,因此这两个选项不会有太大差异。您可以使用其中任何一个。ABAP 代码如下 -LOOP AT lt_table TRANSPORTING NO FIELDS WHERE exp > 5 ADD 1 T...
    99+
    2023-10-22
  • MySQL与Oracle差异比较之函数的示例分析
    这篇文章将为大家详细讲解有关MySQL与Oracle差异比较之函数的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。函数编号类别ORACLEMYSQL注释1数字函数...
    99+
    2024-04-02
  • 深入理解Oracle存储过程和函数的差异
    Oracle的存储过程和函数是数据库中常用的两种存储对象,它们都是预先编译并存储在数据库中的一组SQL语句,但在使用上有一些差异。本文将深入探讨Oracle存储过程和函数的差异,并提供...
    99+
    2024-03-02
    差异分析 过程 vs 函数 sql语句
  • Sybase与Oracle数据库管理系统的核心差异
    Sybase与Oracle数据库管理系统的核心差异,需要具体代码示例 数据库管理系统在现代信息技术领域中扮演着至关重要的角色,Sybase和Oracle作为两大知名的关系型数据库管理系...
    99+
    2024-03-08
    oracle sybase 数据库管理系统 sql优化 sql语句
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作