1. 程式人生 > >Oracle SQL高階用法

Oracle SQL高階用法

1.merge into的使用

語法:merge into 目標表 a              using 源表 b              on(a.條件欄位1=b.條件欄位1 and a.條件欄位2=b.條件欄位2 ……)                when matched then 操作1(update set a.更新欄位=b.欄位)              when  not macthed then 操作2 ( insert (欄位1,欄位2……) values (值1,值2……) )

作用:通常用於判斷一個表中是否擁有源表相應匹配的欄位值,用以進行相應的資料庫操作

範例:

構建dept表的複製表dept_test,如果查到複製表的部門id和源表的部門id相同則更新資料,如果複製表的部門id與源表部門id不匹配,則將新的資料插入至複製表中。

2.遞迴查詢

語法:select * | 欄位 from 表名

start with 欄位=值

connect by prior 父欄位=子欄位(子欄位=父欄位)

作用:通常用於判斷一個表中存在自連線的情況,查詢出整個的樹狀結構

範例:查詢emp表中smith這個人的層級關係。