使用SQL MERGE語句組合表
create table inventory (part_nointeger,part_count integer);
insert into inventory values(1,5);
insert into inventory values(3,6);
create table shipment (part_nointeger,part_count integer);
insert into shipment values(1,2);
insert into shipment values(2,2);
MERGE INTO inventory
USING shipment
ON (inventory.part_no = shipment.part_no)
WHEN MATCHED THEN
UPDATE SET part_count = part_count + shipment.part_count
WHEN NOT MATCHED THEN
INSERT VALUES (shipment.part_no,shipment.part_count);
commit;
select * from inventory;
PART_NO PART_COUNT
---------- ----------
1 4
3 6
2 2
執行的結果是shipment資料已經被合併到inventory中,所以與inventory中某些東西相匹配的shipment都會被新增到count中,而沒有得到的匹配的就不會新增到inventory中。
在MERGE語句中必須指定一個WHEN MATCHED和一個WHEN NOT MATHCED語句。如果除這兩種情況之外還有別的情況,你可能就需要使用一個常規的INSERT或者UPDATE語句。
另外一點是MERGE語句一次只能修改一行記錄,而且不能修改在ON子句中引用的列。
MERGE語句的目標表(target table)(在本例中是inventory)必須是一個可以使用INSERT語句進行插入或者UPDATE語句進行更新的表或者檢視。源表(source table)(在本例中是shipment)可以是任何的查詢表,比如說外部表或者管道化表函式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16436858/viewspace-515897/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用SQL語句將資料庫中的兩個表合併成一張表SQL資料庫
- 用一條SQL語句顯示所有可能的比賽組合SQL
- 使用sql語句查詢平均值,使用sql語句查詢資料總條數, not in 篩選語句的使用SQL
- SQL 高階語法 MERGE INTOSQL
- 兩表聯查修改的sql語句SQL
- SQL單表查詢語句總結SQL
- 定時生成分月表sql語句SQL
- 統計報表 -- sql統計語句SQL
- Java中如何解析SQL語句、格式化SQL語句、生成SQL語句?JavaSQL
- SQL語句SQL
- Fastapi sqlalchemy DBApi 直接使用sql語句ASTAPISQL
- jsqlparser使用記錄---生成sql語句JSSQL
- SQL 兩個表組合查詢SQL
- 【SQL】Oracle SQL join on語句and和where使用區別SQLOracle
- 【SQL】9 SQL INSERT INTO 語句SQL
- 【SQL】10 SQL UPDATE 語句SQL
- 【SQL】11 SQL DELETE 語句SQLdelete
- sql常用語句SQL
- SQL SELECT 語句SQL
- excel表結構生成powerDesigner模型,生成建表語句sqlExcel模型SQL
- 4.3.2 關於使用SQL語句建立CDBSQL
- Sqlserver、oracle中Merge的使用方法,一個merge語句搞定多個Insert,Update,Delete操作SQLServerOracledelete
- Mysql跨表更新 多表update sql語句總結MySql
- [20210112]ashtop查詢特定表的SQL語句.txtSQL
- 複製表結構和資料SQL語句SQL
- Oracle執行語句跟蹤 使用sql trace實現語句追蹤OracleSQL
- Pandas 基礎 (9) - 組合方法 merge
- sql merge intoSQL
- 1.3. SQL 語句SQL
- Oracle基本SQL語句OracleSQL
- Sql語句小整理SQL
- SQL語句優化SQL優化
- SQL 語句學習SQL
- SQL語句IN的用法SQL
- [20211009]使用bash計算sql語句的sql_id.txtSQL
- idea內建資料庫 + sql語句庫表操作Idea資料庫SQL
- mysql建表常用sql語句個人經驗分享MySql
- flowable 控制檯列印出自帶表的 sql 語句SQL
- SQL server資料庫表碎片比例查詢語句SQLServer資料庫