Ответ 1
Нет необходимости иметь три оператора обновления, одного достаточно:
UPDATE temp_table_new
SET id1 = id2,
id2 = id1;
Я решал одну из головоломок и натыкался на обмен значениями столбцов с помощью запросов DML:
SELECT * FROM TEMP_TABLE;
ID1, ID2
--------
20, 15
20, 15
20, 15
Решение - математический расчет:
UPDATE TEMP_TABLE SET ID1=ID1+ID2;
UPDATE TEMP_TABLE SET ID2=ID1-ID2;
UPDATE TEMP_TABLE SET ID1=ID1-ID2;
Теперь я пытаюсь выяснить, может ли это применяться к строкам или нет, пожалуйста, предложите.
SELECT * FROM TEMP_TABLE_NEW;
ID1, ID2
--------
ABC, XYZ
ABC, XYZ
ABC, XYZ
Нет необходимости иметь три оператора обновления, одного достаточно:
UPDATE temp_table_new
SET id1 = id2,
id2 = id1;
CREATE TABLE Names
(
F_NAME VARCHAR(22),
L_NAME VARCHAR(22)
);
INSERT INTO Names VALUES('Ashutosh', 'Singh'),('Anshuman','Singh'),('Manu', 'Singh');
UPDATE Names N1 , Names N2 SET N1.F_NAME = N2.L_NAME , N1.L_NAME = N2.F_NAME
WHERE N1.F_NAME = N2.F_NAME;
SELECT * FROM Names;