использование (+) после оператора where в sql server - PullRequest
0 голосов
/ 09 января 2011

Как я могу конвертировать следующие plsql в tsql.B.STATUS(+)=1 не работает в tsql.

  Select * from A,B where A.ID=B.ID(+)
     WHERE B.STATUS(+)=1

это не возвращает строки в mssql, потому что он не понимает B.STATUS является необязательным

 Select * from A LEFT JOIN B ON A.ID=B.ID
WHERE B.STATUS=1

Ответы [ 2 ]

5 голосов
/ 09 января 2011

OUTER JOIN изменяется на INNER JOIN, когда к внешней таблице в условии WHERE применяется условие В предложении ON он остается как OUTER.

Вам нужно нажать предикат "in"

 Select * from A LEFT JOIN B ON A.ID = B.ID AND B.STATUS=1

OR

 Select * from
     A LEFT JOIN
     (SELECT * FROM B WHERE B.STATUS=1) B1 ON A.ID = B1.ID
0 голосов
/ 10 января 2011

Просто сделайте это ИЛИ "(b.status = 1 ИЛИ b.status IS NULL)"

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