|
правильное написание сравнений в запросе |
☑ |
0
Strimteam
15.07.15
✎
12:00
|
Появился вопрос "правильного" написания кода на сравнения в запросе.
Первый вопрос:
Есть 3 варианта:
А) - Поле ЕСТЬ НЕ NULL
Б) - НЕ Поле ЕСТЬ NULL
В) - ЕстьNULL(Поле,1) <> 1
Второй вопрос:
А) Когда Найти(Поле,"А") > 0 Тогда
Б) Когда Найти(Поле,"А") Тогда
Напишите ответ - какой вариант поддерживаете вы, или какой пишите чаще в 1С.
Любые аргументы только приветствуются.
|
|
1
Strimteam
15.07.15
✎
12:06
|
На сайте 1С среди "проблем" описан вариант А для первого вопроса
|
|
2
ДенисЧ
15.07.15
✎
12:09
|
Б
А
|
|
3
Ненавижу 1С
гуру
15.07.15
✎
12:10
|
я использую НЕ Поле ЕСТЬ NULL
вариант В) вообще не верен
Когда Не Найти(Поле,"А")=0 Тогда
или
Когда Не Найти(Поле,"А")<>0 Тогда
|
|
4
Strimteam
15.07.15
✎
12:12
|
(3) А как относитесь к Б во втором вопросе?
|
|
5
fisher
15.07.15
✎
12:20
|
1) Всегда использую Б. На А всегда косился с подозрением, хотя может оно и эквивалентно - всегда лень было это выяснять.
2) Ээээ... А что такое "Найти" в запросе?
|
|
6
igork1966
15.07.15
✎
12:23
|
(5) На мой взгляд нехорошо предполагать как конвертируется в булево значение другого типа.
|
|
7
Strimteam
15.07.15
✎
12:27
|
(5) да, согласен, приношу извинения что не правильно сделал заголовок.
Это ещё один вариант, добавленный к вопросу о правильности.
|
|
8
igork1966
15.07.15
✎
12:28
|
(6) +1
сорри мое относится ко второму вопросу
|
|
9
ДенисЧ
15.07.15
✎
12:28
|
(6) "нехорошо" в данном случае немного не то слово...
|
|
10
fisher
15.07.15
✎
12:30
|
(7) А, то есть речь о "Если Найти()"?
В Си когда-то такое было популярно (Б). Сейчас вроде повсеместно плохим стилем считается и заслуженно, по моему мнению.
|
|
11
fisher
15.07.15
✎
12:36
|
1) В - такое вообще первый раз вижу. Такое можно написать, только если про ЕСТЬ NULL не знать.
|
|
12
Smallrat
15.07.15
✎
12:38
|
эээмм, а разве к NULL применимы логические операции?
по идее НЕ NULL будет NULL
|
|
13
Smallrat
15.07.15
✎
12:42
|
а понял - это не логическая операция, это просто конструкция проверки на NULL такая
|
|
14
Strimteam
15.07.15
✎
12:45
|
(12) Сам так же считал, но увидев ссылку на сайте 1С засомневался.
|
|
15
fisher
15.07.15
✎
12:50
|
(13) Именно. Судя по всему, разработчики SQL решили подстраховать криворуких разработчиков и сделать на одну трудноуловимую ошибку меньше, учитывая и такой вариант синтаксиса IS NULL
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший