将 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
测试版本并验证它是否生成相同的结果集。
我正在考虑将 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
测试版本并验证它是否生成相同的结果集。