I am trying to update the same column with different error codes based on the error condition.
The update conditions (Separately) :
UPDATE MEM_SRC_EXTN
SET INT_VALUE_1 =100
WHERE ISNULL(TYPE_VALUE,'') =''
OR ISNULL(TYPE,'') =''
OR ISNULL(VALUE_1,'') =''
OR ISNULL(VALUE_2,'') ='';
UPDATE MEM_SRC_EXTN EXTN
SET INT_VALUE_1=222
WHERE NOT EXISTS
(SELECT 1
FROM CMC_MEM_SRC SRC
WHERE EXTN.TYPE_VALUE = SRC.TN_ID);
UPDATE MEM_SRC_EXTN
SET INT_VALUE_1=333
GROUP BY TYPE_VALUE
HAVING COUNT(VALUE_1)>1;
As I have to club these 3 update conditions into one based on condition, so that It first checks the condition and then update column values instead of triggering all 3 update statement each time.
I come up with this solution but not sure will whether this will work or not?
UPDATE MEM_SRC_EXTN EXTN
SET INT_VALUE_1 = CASE
WHEN (ISNULL(TYPE_VALUE,'') ='' OR ISNULL(TYPE,'') ='' OR ISNULL(VALUE_1,'') =''OR ISNULL(VALUE_2,'') ='')
THEN 100
WHEN NOT EXISTS (SELECT 1 FROM CMC_MEM_SRC SRC WHERE EXTN.TYPE_VALUE = SRC.TN_ID)
THEN 222
WHEN GROUP BY TYPE_VALUE HAVING COUNT(VALUE_1)>1
THEN 333
ELSE 000
END