Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 May 21

T

Timus in SqlCom.ru - Стиль жизни SQL
ну и да. тут чисто ms sql. остальное можно попробовать спросить на @sql_ninja
источник

ЕА

Екатерина Александро... in SqlCom.ru - Стиль жизни SQL
Timus
ну и да. тут чисто ms sql. остальное можно попробовать спросить на @sql_ninja
Благодарю
источник

B

Bogdan in SqlCom.ru - Стиль жизни SQL
Всем привет. Подскажите, пожалуйста, если я пишу в Where несколько условий через AND то если первое не сработало второе не будет проверяться?
источник

B

Bogdan in SqlCom.ru - Стиль жизни SQL
Мой случай использования это сравнивание длинных строк через checksum И по названию
источник

B

Bogdan in SqlCom.ru - Стиль жизни SQL
И вот мне интересно правильно ли оно отработает чтобы сначала проверило чексуммы, а потом уже только по названию сравнило
источник

B

Bogdan in SqlCom.ru - Стиль жизни SQL
Отработает то оно в любом случае, интересно как выполнятся сам запрос итоговый
источник

A

Alex in SqlCom.ru - Стиль жизни SQL
По правилам мат логики
источник

A

Alex in SqlCom.ru - Стиль жизни SQL
А & B = 1
Только в случае, когда А=1 и В=1
источник

A

Alex in SqlCom.ru - Стиль жизни SQL
А реализация зависит от вашей субд
источник

A

Alex in SqlCom.ru - Стиль жизни SQL
Не должно по идее В Праверяться
источник

RO

Roman Okhunov in SqlCom.ru - Стиль жизни SQL
Alex
А & B = 1
Только в случае, когда А=1 и В=1
тут вопрос видимо в сторону скорости. т.е. если первые условие (до and) будет проверяться n времени, а второе 1000*n, то если уже первое =0, будет ли проверяться второе))
источник

B

Bogdan in SqlCom.ru - Стиль жизни SQL
Alex
Не должно по идее В Праверяться
👍
источник

B

Bogdan in SqlCom.ru - Стиль жизни SQL
Roman Okhunov
тут вопрос видимо в сторону скорости. т.е. если первые условие (до and) будет проверяться n времени, а второе 1000*n, то если уже первое =0, будет ли проверяться второе))
++
источник

ДЗ

Дмитрий Зайцев... in SqlCom.ru - Стиль жизни SQL
Друзья, не забывайте про правила канала - без флуда, объединяйте сообщения
источник

B

Bogdan in SqlCom.ru - Стиль жизни SQL
Сорян, понял
источник

RO

Roman Okhunov in SqlCom.ru - Стиль жизни SQL
Alex
А реализация зависит от вашей субд
интересно, а это как-то можно затестить?
источник

k

karb0f0s in SqlCom.ru - Стиль жизни SQL
Roman Okhunov
интересно, а это как-то можно затестить?
план запроса посмотреть? SELECT * FROM xxx WHERE 1=0 AND POLE LIKE 'WHAAT%'. и для сиквела предпочтительная ветка будет зависеть от того, есть ли актуальная статистика/индексы/вычисления в одном из параметров запроса
источник

ДК

Денис Карякин... in SqlCom.ru - Стиль жизни SQL
если будет условие where 1=0, то будет только Constant Scan )
источник

ДК

Денис Карякин... in SqlCom.ru - Стиль жизни SQL
и все остальные предикаты через and
источник

KT

Konstantin Taranov in SqlCom.ru - Стиль жизни SQL
Bogdan
Всем привет. Подскажите, пожалуйста, если я пишу в Where несколько условий через AND то если первое не сработало второе не будет проверяться?
Проверить можно с помощью простого запроса (вернет Msg 8134, Level 16, State 1, Line 1 Divide by zero error encountered.):
SELECT 1 WHERE 1=1 AND 1/0=0;

При этом для CASE работает как ожидается:
SELECT CASE WHEN 1=1 THEN 'Yes'
   WHEN 1/0 = 0 THEN 'No' END;
Подробнее для CASE (комментарии тоже интересные )https://sqlstudies.com/2019/06/13/does-the-case-statement-short-circuit/comment-page-1/

А вот для OR совсем все интересно: https://sqlstudies.com/2019/06/17/its-interesting-how-an-or-short-circuits/
источник