成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

PostgreSQL與Oracle的sql區(qū)別有哪些

本篇內容介紹了“PostgreSQL與Oracle的sql區(qū)別有哪些”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

為陽朔等地區(qū)用戶提供了全套網頁設計制作服務,及陽朔網站建設行業(yè)解決方案。主營業(yè)務為成都網站建設、網站建設、陽朔網站設計,以傳統(tǒng)方式定制建設網站,并提供域名空間備案等一條龍服務,秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!

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.系統(tǒng)日期

OraclePostgreSQL
SYSDATEcurrent_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 = 2update emp set name = ‘xxx’ where empno = 2

9. 日期相減

oracle日期相減自動轉換為數字,結果為相差的天數。
pg日期相減為interval類型,得到相差天數需要進行類型轉換

10.遞歸查詢中的level

oracle的遞歸查詢中l(wèi)evel表示查詢深度(或者遞歸層次),在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
listaggstring_agg

15.集合相減

OraclePostgreSQL
Minusexcept

16.null與”

null和’’在oracle中是一致的,最終都會存儲為null,在PG中會進行區(qū)分

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區(qū)別有哪些”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯網站,小編將為大家輸出更多高質量的實用文章!

文章名稱:PostgreSQL與Oracle的sql區(qū)別有哪些
網頁鏈接:http://jinyejixie.com/article46/pgsphg.html

成都網站建設公司_創(chuàng)新互聯,為您提供動態(tài)網站、網站導航、企業(yè)網站制作云服務器、建站公司定制開發(fā)

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

綿陽服務器托管
青浦区| 全南县| 和龙市| 凤阳县| 湄潭县| 都江堰市| 西贡区| 黄山市| 东港市| 玉环县| 肥乡县| 资中县| 娱乐| 城固县| 昌邑市| 凤庆县| 南阳市| 河东区| 进贤县| 平安县| 北票市| 临泉县| 巴南区| 古浪县| 偏关县| 襄樊市| 刚察县| 城市| 秭归县| 黔江区| 贵阳市| 玉树县| 柞水县| 华宁县| 台南县| 大理市| 古蔺县| 内乡县| 石景山区| 木兰县| 板桥市|