pavelkarinin
@pavelkarinin
Full Stack Web Developer

Поддерживается ли группировка условий выборки в MSSQL?

Не шибко силен в SQL и для целей собственного познания создал небольшую таблицу (грубо)

CREATE TABLE [test]
(
    [id] int,
    [column_A] int,
    [column_B] bit,
    [column_C] int,
    [column_D] bit,
    [column_Z] bigint
);


из которой необходимо сделать выборку по ряду условий, по аналогии с математическим группированием (через скобки) дабы указать приоритет выполнения операций. т.е. что-то вроде такого:

SELECT * FROM [test]
WHERE [column_Z] = 3 AND (([column_A] = 2 AND [column_B] <> 0) OR ([column_C] = 2 AND[ columnD] <> 1))


Из примера можно видеть, что запрос SELECT предполагает такую выборку, при которой условия сгруппированы. В некотором смысле это должно объявлять (я так думаю) порядок выполнения проверки на соответствие условиям, так ли это?... или SQL сам определяет этот порядок для оптимизации выполнения запроса и поэтому группировка условий срабатывать не будет, т.е. скобки не учитываются. Среда - MSSQL 2016.
  • Вопрос задан
  • 53 просмотра
Решения вопроса 1
@d-stream
Готовые решения - не подаю, но...
Скобки естественно учитываются. А вот порядок проверок sql может реализовывать по своему в силу его знания инсайда данных.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы