0

我对 SQL 很陌生,我正在尝试将一些 Oracle 命令转换为 SQL Server。问题在于转换以下右外连接:

where
   SOURCE_FORMATS.LOC_SIMPLE_ENTITY_ID = FILEFORMAT_INTERNAL_SIGNATURES.LOC_FILEFORMAT_ID (+)

据我在 SQL 中的理解,这必须在“from”部分中表示为:

from
   SIMPLE_ENTITIES "SOURCE_FORMATS"  
RIGHT OUTER JOIN FILEFORMAT_INTERNAL_SIGNATURES
on SOURCE_FORMATS.LOC_SIMPLE_ENTITY_ID = FILEFORMAT_INTERNAL_SIGNATURES.LOC_FILEFORMAT_ID

这个逻辑正确吗?

4

1 回答 1

2

在用于外连接的 pre-ANSI Oracle 语法中,(+) 用于预计有缺陷的表,而不是用于要保留的表。

所以:

select * from t1, t2 where t1.col1 = t2.col2 (+)

是相同的

select * from t1 left join t2 on t1.col1 = t2.col2
于 2012-04-23T12:21:21.313 回答