Как объединить определенные значения столбца в операторе SQL - PullRequest
1 голос
/ 15 апреля 2010

В нашей базе данных есть две переменные с именами OB и B2B_OB. Есть коды EP, и каждый EP может иметь одну из следующих 4 комбинаций:

 EP  OB B2B_OB
---  -- ------
 3   X
 7        X
11  
14   X    X

Что я хочу сделать, так это объединить X в выбранном списке, чтобы у меня было значение A или B для одного EP. Мои условия:

IF (OB IS NULL AND B2B_OB IS NULL) THEN TYPE = A  
IF (OB IS NOT NULL OR B2B_OB IS NOT NULL) THEN TYPE = B

Список, который я хочу получить, выглядит так:

 EP  TYPE
---  ----
 3   B
 7   B
11   A
14   B

Как я могу сделать это в моем запросе? ТИА.

1 Ответ

4 голосов
/ 15 апреля 2010

(РЕДАКТИРОВАТЬ: исправлено И ИЛИ)
Вот решение (синтаксис проверен на postgres, но из того, что я прочитал , должно быть то же самое)

select ep, 
  case
    when ob is null and b2b_ob is null then a
    when ob is not null or b2b_ob is not null then b
    else null
  end as type
from table;

Примечание: else null является избыточным, но хотел подчеркнуть только случай else по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...