0

I have a table some_table:

id | some_integer
---|-------------
 1 |      ?
 2 |      ?
 3 |      ?

How do I (and can it be done in one query) update some_table to:

  • Where id is 1, increase some_integer by 1
  • Where id is 2, decrease some_integer by 2
  • Where id is 3, increase some_integer by 3

To make some_table like:

id | some_integer
---|-------------
 1 |    ? + 1
 2 |    ? - 2
 3 |    ? + 3

Thanks!

2 Answers 2

1
UPDATE some_table
SET some_integer = some_integer + (CASE id WHEN 1 THEN 1 WHEN 2 THEN -2 WHEN 3 THEN 3 END)
WHERE id IN (1,2,3);
Sign up to request clarification or add additional context in comments.

Comments

0

Use a CASE expression:

UPDATE yourTable
SET some_integer = CASE WHEN id = 1 THEN some_integer + 1
                        WHEN id = 2 THEN some_integer + 2
                        WHEN id = 3 THEN some_integer + 3 END
WHERE id IN (1, 2, 3);

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.