/* UPSERT [hint_clause] INTO [TABLE] [db_name.]table_name [(column_list)] { [hint_clause] select_statement | VALUES (value [, value ...]) [, (value [, value ...]) ...] } */ UPSERT INTO my_table SELECT id, 'new_value1', 'new_value2' FROM other_table WHERE condition; UPSERT -- +NOSHUFFLE -- +CLUSTERED INTO my_table /* +NOSHUFFLE */ SELECT id, 'new_value1', 'new_value2' FROM other_table WHERE condition; UPSERT INTO my_table -- +SHUFFLE SELECT id, 'new_value1', 'new_value2' FROM other_table WHERE condition; UPSERT INTO my_table (id, col1, col2) SELECT id, 'new_value1', 'new_value2' FROM other_table WHERE condition; UPSERT INTO TABLE my_db.my_table (id, col1, col2) SELECT id, 'new_value1', 'new_value2' FROM other_table WHERE condition; UPSERT INTO my_table (id, col1, col2) VALUES (1, 'new_value1', 'new_value2'), (2, 'new_value3', 'new_value4'); UPSERT -- +NOSHUFFLE -- +CLUSTERED INTO my_db.my_table VALUES (1, 'new_value1', 'new_value2'), (2, 'new_value3', 'new_value4'); -- example UPSERT INTO kudu_table (pk, c1, c2, c3) VALUES (0, 'hello', 50, true), (1, 'world', -1, false); UPSERT INTO production_table SELECT * FROM staging_table; UPSERT INTO production_table SELECT * FROM staging_table WHERE c1 IS NOT NULL AND c2 > 0;