Back

Explore Courses Blog Tutorials Interview Questions
0 votes
1 view
in SQL by (20.3k points)

UPDATE dbo.TestStudents  

SET LASTNAME = 

( CASE  

WHEN (LASTNAME = 'AAA') THEN 'BBB' 

WHEN (LASTNAME = 'CCC') THEN 'DDD' 

WHEN (LASTNAME = 'EEE') THEN 'FFF' 

ELSE  (LASTNAME)

END )

The statement work for the purpose but the else condition scan through every record in the table. Is there any way I can leave the unaffected rows as they are?

1 Answer

0 votes
by (40.4k points)

Try adding a WHERE clause like this:

UPDATE dbo.TestStudents  

SET     LASTNAME =  CASE  

                        WHEN LASTNAME = 'AAA' THEN 'BBB' 

                        WHEN LASTNAME = 'CCC' THEN 'DDD' 

                        WHEN LASTNAME = 'EEE' THEN 'FFF' 

                        ELSE LASTNAME

                    END 

WHERE   LASTNAME IN ('AAA', 'CCC', 'EEE')

Welcome to Intellipaat Community. Get your technical queries answered by top developers!

28.4k questions

29.7k answers

500 comments

94.2k users

Browse Categories

...