Преобразование Oracle SQL в SQL Сервер - PullRequest
1 голос
/ 18 июня 2020

Я собираюсь преобразовать запрос 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 они подключены? Мой вопрос в основном заключается в следующем: предложение WHERE в Oracle то, к чему я должен ПРИСОЕДИНЯТЬСЯ в моей части 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 Server, и я пытаюсь убедиться, что мой лог c в порядке.

Спасибо.

1 Ответ

2 голосов
/ 18 июня 2020

Ваш join запрос эквивалентен версии с запятыми. Запросы должны быть функционально эквивалентными (возвращать тот же набор результатов). На самом деле я ожидал, что они создадут одинаковые планы выполнения.

Тем не менее, вы должны написать запрос, используя join в обеих базах данных. Это был предпочтительный синтаксис более двух десятилетий (в общем: Oracle немного опоздал на вечеринку).

И обе базы данных должны обрабатывать запросы с запятыми - базы данных все еще поддерживают archai c синтаксис. Таким образом, вы можете протестировать версию с join в Oracle и убедиться, что она дает тот же набор результатов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...