将 Oracle SQL 转换为 SQL 服务器

Converting Oracle SQL to SQL Server

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

假设我有一个问题..

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'

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

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

谢谢。

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

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

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