Каталог решений - Преобразование запросов

Преобразование запросов

Преобразование запросов

В наличии

Использование математических методов для языка запросов.

Категория:

Описание

Два утверждения.

Мы все куда-то торопимся, поэтому кратко.

  1. Левое соединение с дополнительным условием в запросе SQL можно заменить внутренним соединением, если не используются функции null.
  2. Полное соединение в запросе SQL можно заменить объединением с группировкой, если поля группировки не содержат значений null.

Статья окончена, спасибо за внимание.

Пояснение.

  • Многие программисты используют эти преобразования запросов, но не задумываются об условиях применения.
  • Предполагаем, что поля таблиц СУБД не содержат null, это настройки по умолчанию:

MS https://docs.microsoft.com/ru-RU/sql/connect/ado-net/sql/handle-null-values?view=sql-server-2017

PG https://postgrespro.ru/docs/postgrespro/13/ddl-constraints#id-1.5.4.6.6

null возникают в результате (правое, левое, полное) соединения таблиц, когда условия соединения не выполняется и присоединяемые поля отсутствуют.

  • Функции null – например: (Аргумент) is null, (Аргумент)  is not null, isnull(Аргумент1, Аргумент2)

MS https://docs.microsoft.com/ru-ru/sql/t-sql/queries/is-null-transact-sql?view=sql-server-ver15

PG https://postgrespro.ru/docs/postgresql/9.6/functions-comparison

  • Два значения null никогда не равны между собой, однако если столбец группирования содержит значения NULL, они рассматриваются как равные и помещаются в одну группу.

MS https://docs.microsoft.com/ru-ru/sql/t-sql/queries/select-group-by-transact-sql?view=sql-server-ver15

 

has been added to your cart:
Оформление заказа