1.查詢當前用戶下所有表名
- select table_name from user_tables;
2.行轉列
- 統計每個部門下的人數
- 行轉列
語法:case when…then…else…end
我們只想要一列顯示一個結果,所以在前面加個max
3.時間截取
dual是一張虛擬表,當你只有一個字段,可以使用這個虛擬表做測試
4.數據合併
語法:
merge into 表1 using 表2 on 條件
when matched then
when not matched then
- 先創建兩張表,插入數據。
- 將B表合併到A表,如果A表存在相同記錄,在覆蓋更新,如果沒有則插入。
可以看到1122記錄的sal被替換成B表的3000,1144的ename和sal也被B表替換。
新增插入了EE和FF。
5.遞歸
語法:
select …from table [where 條件]
start with 條件
connect by —用於指定父行和子行的關係
[prior 字段1 = 字段2] —prior在等號左邊,向下取
[字段1 = prior字段2];—prior在等號右邊,向上取
- 在中國地級市表中 取 104001008002 南關區 所有上級城市
- 中南地區的所有下級省份,城市,區縣
- 查看中南地區的所有下級城市列表,城市level屬於3
- 顯示地區,省份,城市,區縣
當c_id的長度等於6時,爲省份。我們只要進行多個自連接,c_id=superior_c_id,就能顯示所有地區詳細信息。