sql - 将 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 中那样的准确数据,我正在努力确保我的逻辑是合理的。
谢谢。
解决方案
您的join
查询相当于带逗号的版本。查询在功能上应该是等效的(返回相同的结果集)。我实际上希望他们产生相同的执行计划。
也就是说,您应该join
在两个数据库中都使用编写查询。二十多年来,这一直是首选语法(总的来说:甲骨文有点晚了)。
两个数据库都应该用逗号处理查询——数据库仍然支持古老的语法。因此,您可以join
在 Oracle中测试版本并验证它是否产生相同的结果集。
推荐阅读
- python - datetime ISO 周表示一年中的第一天和最后一天都在同一周
- python - Flask, Right way to delete record and related files/images
- html - How do I center my embedded youtube iframe?
- reactjs - Firefox 无法在 wss://alpha.processretina.com/sockjs-node 建立与服务器的连接?
- javascript - 将日期时间参数与键值匹配
- ansible - 在ansible中将文件行转换为字典
- java - 如何在 Android TV 上获取可用的电视输入源并以编程方式更改
- c# - 多个PDF MemoryStreams的iText7合并不起作用
- javascript - Javascript 复制数组。更改会影响两个数组
- mysql - 如何在 Windows 10 机器上禁用 MySQL 8.0 中的 secure_file_priv?