Oracle 和 SQL Server 选择 (+) 等效项
Posted
技术标签:
【中文标题】Oracle 和 SQL Server 选择 (+) 等效项【英文标题】:Oracle and SQL Server select (+) equivalent 【发布时间】:2012-06-15 04:49:11 【问题描述】:在甲骨文我有:
SELECT t2.Regkood, t2.naitatel, t2.naitafaks, t3.lahtiolekuaeg, t1.*
FROM table1 t1, table2 t2, table3 t3
WHERE t1.client = t2.client AND t1.client = t3.client(+) AND t1.client = 414246
如何在 SQL Server 中获得相同的结果?
谢谢
【问题讨论】:
:使用LEFT OUTER JOIN
语法
您不应该在 Oracle 中使用 (+)
。使用标准的JOIN
语法。
【参考方案1】:
SELECT t2.Regkood,
t2.naitatel,
t2.naitafaks,
t3.lahtiolekuaeg,
t1.*
FROM table1 t1
INNER JOIN table2 t2
ON t1.client = t2.client
LEFT JOIN table3 t3
ON t1.client = t3.client
WHERE t1.client = 414246
了解连接的一些示例:
ORACLE 中的左外连接
SELECT *
FROM A, B
WHERE A.column = B.column(+)
ORACLE 中的右外连接
SELECT *
FROM A, B
WHERE A.column(+)=B.column
【讨论】:
@Romil : 只是出于兴趣,请您解释一下 + 符号在 Oracle 中代表什么? 在以前版本的oracle(我们使用+)和sql server(我们使用*)来表示左连接或右连接。 您的两个 Oracle 联接是等效的 (A LEFT JOIN B
)。如果你想写A RIGHT JOIN B
,你会写这样的东西:SELECT * FROM A,B WHERE A.column (+) = B.column
恐怕我的页面上看不到这样的东西:|以上是关于Oracle 和 SQL Server 选择 (+) 等效项的主要内容,如果未能解决你的问题,请参考以下文章