Does SQL have anything like C's conditional expression?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Does SQL have anything like C's conditional expression?
Дата
Msg-id 22075.900964893@sss.pgh.pa.us
обсуждение исходный текст
Список pgsql-sql
I have the following problem: given a specific record in a table
(identified by OID, in my case), always update field A to a new value,
and update field B to a new value only if field C contains 'OK'.

This is easy to do in two queries, say

UPDATE table SET fieldA = valueA WHERE oid = something;
UPDATE table SET fieldB = valueB WHERE oid = something AND fieldC = 'OK';

For speed reasons, I'm wondering if it can be done in one query.
It could be done with something like a C conditional expression:

UPDATE table SET
    fieldA = valueA,
    fieldB = (fieldC = 'OK') ? valueB : fieldB
WHERE oid = something;

but SQL doesn't seem to have that concept.  Can anyone suggest
a fast way to do what I need to do?

            regards, tom lane

В списке pgsql-sql по дате отправления:

Предыдущее
От: Dan Delaney
Дата:
Сообщение: Can I store bitmap graphics in a table?
Следующее
От: Marcio Macedo
Дата:
Сообщение: Money type formating