Skip to content
Advertisement

Update a column in table A based on values in table B using a CASE statement

I got a tricky question.

I would have a table A that is composed of two columns A.ID and A.Cat1_Avail. The Cat1_Avail-column is empty as of now.

I would like to update the values in A.Cat1Avail based on a logical question. In particular, I have another table B that is composed of B.ID and B.Feature. B.Feature can hold the following values: Cat1, Cat2 or NULL.

For matching ID’s, I would like to insert a 1 in A.Cat1_Avail given the matching record in table B holds the value Cat1 in B.Feature. In case of Cat2, A.Cat1_Avail should be 0.

In summary, I would like to update a column based on logical questions (do the ID’s match? what is the content of B.Feature?).

I hope this makes things clear and is not too specific.

I guess this problem could be solved with several commands in sequence. But I would like to have a single command that can handle this problem.

Advertisement

Answer

Use merge to achieve it as following:

Cheers!!

User contributions licensed under: CC BY-SA
9 People found this is helpful
Advertisement