Выберите только одно поле результата из двух объединенных таблиц - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь выбрать только одно поле из двух таблиц. Вместо c.cust_name и s.supp_name только одно имя поля с контентом из таблицы customer или supplier.

SELECT o.id, o.order_nr, o.cust_suppl, c.cust_name, s.supp_name
FROM   Orders AS o LEFT OUTER JOIN
       customer AS c ON o.id = c.id LEFT OUTER JOIN
       supplier AS s ON o.id = s.id

Токовый выход:

id    order_nr   cust_suppl   cust_name   supp_name
1       1100       c            Cust_A      NULL    
2       1101       c            Cust_B      NULL
3       2100       s            NULL        Suppl_A
4       2101       s            NULL        Suppl_B 

1 Ответ

0 голосов
/ 28 мая 2020

вы можете декодировать:

SELECT o.id, o.order_nr, o.cust_suppl
       , decode( c.cust_name, null, s.supp_name, c.cust_name )
FROM   Orders AS o LEFT OUTER JOIN
       customer AS c ON o.id = c.id LEFT OUTER JOIN
       supplier AS s ON o.id = s.id

или использовать регистр:

SELECT o.id, o.order_nr, o.cust_suppl
       , case when c.cust_name is null then s.supp_name else c.cust_name end
FROM   Orders AS o LEFT OUTER JOIN
       customer AS c ON o.id = c.id LEFT OUTER JOIN
       supplier AS s ON o.id = s.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...