Reputation: 78
I am new to programming. I need help in writing SQL statement which can update multiple columns based multiple conditions.
Below is sample code for my requirement:
UPDATE table1
SET t1.column1 = value1 IF <condition1>
SET t1.column2 = value2 IF <condition2>
...
...
FROM table1 t1, table2 t2, ...
WHERE <common conditions>
-- Thank you.
Upvotes: 0
Views: 873
Reputation: 28751
You can use CASE condition in SET clause
UPDATE table1
SET table1.column1 = CASE WHEN <condition1> THEN value1 WHEN <condition2> THEN value2 END,
table1.column2 = CASE WHEN <condition1> THEN value1 WHEN <condition2> THEN value2 END
.
.
WHERE
.
.
EDIT : For updating using multiple tables you can use join between the tables based on common condition
UPDATE table1
SET table1.column1 = CASE WHEN <condition1> THEN value1 WHEN <condition2> THEN value2 END,
table1.column2 = CASE WHEN <condition1> THEN value1 WHEN <condition2> THEN value2 END
FROM table1,table2
WHERE table1.commonCol = table2.commonCol
<AND/OR> <other conditions>
Upvotes: 1