2015-03-30 1 views
0

У меня следующий SQL выберите:сборки, где положение для проверки только после первого пункт встречается

select ... 
from table1 a, table2 b 
where 
a.column = 'ABC' and 
a.column2 = b.column2 

Я хотел бы проверить, только если a.column2 = b.column2 когда a.column = 'ABC'. Как это сделать?

Thanks

+3

точно так же, как вы это сделали. 'и' требует, чтобы значения с обеих сторон были истинными. –

+2

Что должно произойти, когда 'a.column <> 'ABC'' –

ответ

1

Я не уверен, из вашего вопроса тега, если вы пытаетесь понять, как сделать это с РЕГИСТРИРУЙТЕСЬ конкретно (в отличие от того, как вам сделал это с оговоркой WHERE), но в любом случае - пара способов:

1) --with ИНЕКЕ

select ... 
from 
    table1 a 

    INNER JOIN table2 b 
    ON a.column2 = b.column2 

where 
    a.column = 'ABC' 

2) --without ИНЕКЕ

select ... 
from 
    table1 a 

    INNER JOIN table2 b 
    ON a.column2 = b.column2 
    AND a.column = 'ABC' 
-1

Попробуйте это. Он будет проверять column2 только тогда, когда столбец «ABC»:

select ... 
from table1 a, table2 b 
where 
(a.column = 'ABC' and 
a.column2 = b.column2) or a.column <> 'ABC' 
+0

Пожалуйста, дорогой downvoter, когда downvoting добавьте комментарий. Это где предложение делает именно то, что хочет. –

Смежные вопросы