|
правильное написание сравнений в запросе | ☑ | ||
---|---|---|---|---|
0
Strimteam
15.07.15
✎
12:00
|
Появился вопрос "правильного" написания кода на сравнения в запросе.
Первый вопрос: Есть 3 варианта: А) - Поле ЕСТЬ НЕ NULL Б) - НЕ Поле ЕСТЬ NULL В) - ЕстьNULL(Поле,1) <> 1 Второй вопрос: А) Когда Найти(Поле,"А") > 0 Тогда Б) Когда Найти(Поле,"А") Тогда Напишите ответ - какой вариант поддерживаете вы, или какой пишите чаще в 1С. Любые аргументы только приветствуются. |
|||
1
Strimteam
15.07.15
✎
12:06
|
На сайте 1С среди "проблем" описан вариант А для первого вопроса
http://v8.1c.ru/predpriyatie/typical_problems_Req.htm |
|||
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
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |