首页 > 解决方案 > 将 Oracle SQL 转换为 SQL Server

问题描述

我正在考虑将 Oracle 查询转换为 SQL Server 查询,但我有点困惑,因为我想确保我正确理解它......

说我有一个查询..

Select t1.Name, t2.Address, t3.Num
From t1, t2, t3
Where t1.code = t2.othercode
  and t2.Id = t3.otherId
  and t3.Indicator = 'N'

现在FROM声明 - 这意味着它们都是INNER JOINED自动的?但我没有具体说明FIELDS他们加入了什么?我的问题基本上是,Oracle 中的 WHERE 子句是我应该在查询的 FROM 部分中加入的内容,如下所示:

SELECT t1.Name, t2.Address, t3.Num
FROM t1 
JOIN t2 ON t1.code = t2.othercode
JOIN t3 ON t2.id = t3.otherId AND t3.indicator = 'N'

上面的 2 个查询会做同样的事情吗?

我在 Oracle 中没有像在 SQL Server 中那样的准确数据,我正在努力确保我的逻辑是合理的。

谢谢。

标签: sqloraclesql-server-2012

解决方案


您的join查询相当于带逗号的版本。查询在功能上应该是等效的(返回相同的结果集)。我实际上希望他们产生相同的执行计划。

也就是说,您应该join两个数据库中都使用编写查询。二十多年来,这一直是首选语法(总的来说:甲骨文有点晚了)。

两个数据库都应该用逗号处理查询——数据库仍然支持古老的语法。因此,您可以join 在 Oracle中测试版本并验证它是否产生相同的结果集。


推荐阅读