Попытка сделать внутреннее соединение со столбцом и некоторыми значениями в этом столбце - PullRequest
0 голосов
/ 16 апреля 2020

Как видно из названия, я пытаюсь выполнить внутреннее соединение с двумя таблицами. Для одной из таблиц у вас есть столбец с обычными значениями, заполняющими его. Однако для другой таблицы заполненные значения обычно нормальны, но иногда она заполняется символом «-», что означает все.

Так что я хочу выполнить внутреннее соединение, где, если есть «-», оно присоединится со всем в другой таблице. Это то, что я могу сделать с SQL (я использую Oracle btw), но делаю обычную операцию внутреннего соединения, если это нормальное значение, отличное от '-'.

t1:
A | B
1 | 2
- | 4
3 | 5



t2:
A | C
1 | 4
6 | 6


t3: result of inner join
A | B | C
1 | 2 | 4
1 | 4 | 4
6 | 4 | 6

Есть предложения? Любая и вся помощь приветствуется!

1 Ответ

0 голосов
/ 16 апреля 2020

Я думаю, что это будет:

select t2.a, t1.b, t2.c
from t1 join
     t2
     on t1.a = t2.a or t1.a = '-';

Обратите внимание, что иногда бывает сложно оптимизировать or для повышения производительности. Таким образом, вы можете найти это быстрее, используя union all:

select t2.a, t1.b, t2.c
from t1 join
     t2
     on t1.a = t2.a
union all
select t2.a, t1.b, t2.c
from t1 join
     t2
     on t1.a = '-';

Здесь - это db <> скрипка.

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