2014-01-31 2 views
-3

Я хочу, чтобы превратить этоЧто эквивалентно (+) <2 в ANSI SQL?

TableA.ColumnA(+)<2 

в ANSI SQL.

Я уже пробовал:

(TableA.ColumnA<2 OR TableA.ColumnA IS NULL) 

Он пропустил один ряд. Несмотря на то, что его ColumnA (null).

Edit (больше контекста): Вот в запросе

SELECT * FROM a, c 
WHERE a.status(+)<2 
AND a.rank(+)=1 
AND c.id=a.id(+) 
+2

Если это условие сшивания, то вам нужно использовать 'LEFT',' RIGHT' или 'FULL OUTER JOIN', чтобы это условие работало. В этом случае «INNER JOIN» не поможет. – Rachcha

+0

Это, конечно, какое-то условие, но нет «TableB» для присоединения. Я вообще не понимаю этого состояния. В моем понимании должна быть таблица рядом с <вместо числа. – ekip

+0

Вам нужно показать больше контекста, поэтому мы поняли, о чем вы спрашиваете, поэтому мы можем предложить замену; без лишнего контекста, этот вопрос трудно ответить. Это похоже на вопрос: «Почему нет a = b?» без дополнительной информации. Вы должны быть более конкретными и предоставлять более подробную информацию. –

ответ

2

дать это попробовать

SELECT * FROM c LEFT JOIN a 
ON c.id = a.id 
AND a.status < 2 
AND a.rank = 1 
+0

В моем случае нет «TableB». Почему я должен присоединиться к таблице к числу? Потому что это то, что «TableA.ColumnA (+) <2» делает по моему скромному мнению. – ekip

+1

ekip, идея состоит в том, чтобы взять примерный запрос и применить его к вашей ситуации. Очевидно, что ваша схема буквально не имеет «TableB». Надеюсь, мое редактирование поможет вам увидеть. –

+0

Спасибо М.Али и Джеффри! Оказалось, что вы правы. – ekip