Разница в SQL между оператором и оператором "> =" & "<=" - PullRequest
5 голосов
/ 15 июня 2011

Мы используем запрос SQL для поиска на основе полей dateFrom и dateTo.для этого я использую оператор « больше чем равно (> =) » и оператор « меньше чем равен (<=) </strong>» для поиска в полях даты.где-то я также обнаружил, что мы можем также использовать оператор SQL " Between ", чтобы сделать то же самое.просто хотел подтвердить, что есть какая-то разница, когда мы используем оператор " Между " и когда мы используем оператор " (> = & <=) </strong>".

Ответы [ 3 ]

5 голосов
/ 15 июня 2011

Разницы нет.

(x BETWEEN y AND z)

- это то же самое, что и запись

((x >= y) AND (x <= z))
3 голосов
/ 15 июня 2011

Современные базы данных поставляются с очень интеллектуальными оптимизаторами выполнения запросов.Одной из их основных функций является преобразование запросов. Логически эквивалентные выражения обычно могут быть преобразованы друг в друга.например, как предположил Энтони, оператор BETWEEN может быть переписан Oracle (и MySQL) как два AND -связанных сравнения, и наоборот, если BETWEEN не просто реализован как синтаксический сахар.* Таким образом, даже если будет разница (в производительности), вы можете быть уверены, что Oracle, скорее всего, выберет лучший вариант.

Это означает, что вы можете свободно выбирать свои предпочтения, например, из-за читаемости.1010 *

Примечание: не всегда очевидно, что логически эквивалентно.Правила преобразования запросов становятся более сложными, когда дело доходит до преобразования EXISTS, IN, NOT EXISTS, NOT IN ... Но в этом случае они есть.Для более подробной информации читайте спецификацию (глава 8.3 между предикатами):

http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt

3 голосов
/ 15 июня 2011

Нет как таковой, нет никакой разницы (при использовании ORACLE), но использование оператора BETWEEN - более элегантный способ сравнения значений для диапазона.

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