Можно ли сделать следующее в SQL?SQL JOIN с OR
SELECT * FROM table1 INNER JOIN table2 ON (col1=col2 OR TRIM(col1)=TRIM(col2))
Или:
SELECT * FROM table1 INNER JOIN table2 USING (col1 OR col2)
Можно ли сделать следующее в SQL?SQL JOIN с OR
SELECT * FROM table1 INNER JOIN table2 ON (col1=col2 OR TRIM(col1)=TRIM(col2))
Или:
SELECT * FROM table1 INNER JOIN table2 USING (col1 OR col2)
Вы можете использовать произвольную логику в объединении. Итак, чтобы ответить на ваш вопрос: да, вы можете использовать дизъюнкцию («ИЛИ») в соединении. Тем не менее, в вашем конкретном примере ваша логика - это тавтология - это всегда так - так ничего не получится избыточно.
Вам также не обязательно участвовать в равенстве. Например, мы можем имитировать функции по сравнению оконной величины:
select greatest.id,
greatest.val
from someTable greatest
left join someTable greater
on greater.id = greatest.id
and greater.val > greatest.val
where greater.id is null;
В то время как мой пример выше является довольно распространенным, я обнаружил, что очень редко использовать не Конъюнктивный соединяющие, за Ваш вопрос. Однако это, безусловно, можно сделать.
Это не тавтология; он избыточен. 'col1' может быть не равным' col2'. –
Да, вы правы: Плохо: P – Xophmeister
Ну, вы пробовали? –