Oracle批量插入語句

INSERT ALL
INTO TEST_12(ID, NAME) VALUES(ID, NAME)
SELECT
	ID,
	NAME
FROM
	PROCESS_STEPS 
WHERE
	NAME IN (
		'Pack功能測試(72Hours)',
		'Pack功能測試(144Hours)',
		'Pack功能測試(216Hours)',
		'Pack功能測試(288Hours)',
		'Pack功能測試(360Hours)',
		'Pack功能測試(432Hours)',
		'Pack功能測試(504Hours)',
		'Pack功能測試(648Hours)',
		'Pack功能測試(792Hours)',
		'Pack功能測試(936Hours)',
		'Pack功能測試(1008Hours)' 
	) 
	AND IS_DELETE = 1 
ORDER BY
	DECODE(
		NAME,
		'Pack功能測試(72Hours)', 1,
		'Pack功能測試(144Hours)', 2,
		'Pack功能測試(216Hours)', 3,
		'Pack功能測試(288Hours)', 4,
		'Pack功能測試(360Hours)', 5,
		'Pack功能測試(432Hours)', 6,
		'Pack功能測試(504Hours)', 7,
		'Pack功能測試(648Hours)', 8,
		'Pack功能測試(792Hours)', 9,
		'Pack功能測試(936Hours)', 10,
	'Pack功能測試(1008Hours)', 11)

簡單對上面代碼做個簡述:

1.INSERT ALL插入語句,後面跟的查詢集,如果你只into了一個,那麼就會像循環一樣,去多次插入

2.DECODE函數,這是Oracle特有函數,在這裏是爲了實現查詢集能夠按照IN查詢順序來進行排序

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章