|
|
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
softwarerP. S. Программисты делятся на три типа - на тех, кто понимает троичную логику и на тех, кто ее не понимает Я не программист! Просто спорить люблю. Но я прекрасно вижу, что тот, кто ожидает каких-то результатов от использования таких кривостей либо крут, как варёные яйца и использует "специфические реализации", либо двоешник. Мимопроходящий помимо этого, есть ещё и неопределенное состояние - адепты M$ И мы гордимся этим! А всем, кто поощряет использование конструкций if 1 <> NULL then ... моё большое "фи"! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2008, 14:38 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
Hello, M$! You wrote on Mon, 06 Oct 08 11:38:17 GMT: M$ M> Я не программист! Просто спорить люблю.ааааа.... в сад, срочно! -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2008, 14:40 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий в сад, срочно! Ухожу :-( Злые вы. И чего накинулись-то? Интеллектом задавить решили? Но я вернусь... Дух M$ не сломить! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2008, 15:02 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
M$ пишет: M> Дух M$ не сломить! С такого перепугу можно и ... кхм... дух сломать. Или шуй. У кого что. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2008, 15:11 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
M$ softwarer Ggg_oldВообще странный запрос, т.к. любое логическая опреация с null должна давать null, следовательно использование такой операции напрямую в операторах типа case не очень верно, т.к. они оперируют булевыми типами. Такое впечатление, что в Вашей реальности boolean значение не может быть null Boolean НЕ может бить ничем, кроме true и false. И с каких пор в Вашей реальности появился тип boolean?Бред В РМ, которую и реализуют РСУБД троичная система счисления Потому boolean может быть true, false ИЛИ не определено аки null. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2008, 16:40 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
VoDAБред В РМ, которую и реализуют РСУБД троичная система счисления Текст до смайлика следовало бы писать с отдельной строки. Как-никак заголовок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2008, 17:21 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
M$всем, кто поощряет использование конструкций if 1 <> NULL then ... моё большое "фи"! 2 M$ : Если это камень в мой огород, то Вы ошиблись адресом. Мне пришлось сопоставлять строку с помощью оператора LIKE с шаблоном, который заранее неизвестен . Он может оказаться корректным (типа '%,005%'), а может оказаться NULL'ом, т.к. сам является результатом некоторого сопоставления (других) таблиц. Вообще-то я накануне отвечал на эту тему M$Топикстартер написал кривой запрос... (поскипано) И хоть убейте, такой ужас писать меня не заставите Тема топика совсем не про то, как надо и не надо писать запросы. Вас никто и не просил тут показывать своё мастерство. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.10.2008, 21:00 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
softwarer M$ softwarerТакое впечатление, что в Вашей реальности boolean значение не может быть null Boolean НЕ может бить ничем, кроме true и false. Плюньте в лицо тому, кто Вам сказал такую глупость.Georg Boole умер в 1864 году. Плюнуть ему в лицо не смогу не смотря на всё ваше желание. Ozzy The terrible M$Топикстартер написал кривой запрос... (поскипано) И хоть убейте, такой ужас писать меня не заставите Тема топика совсем не про то, как надо и не надо писать запросы. Вас никто и не просил тут показывать своё мастерство.Это была попытка самозащиты, перевести стрелки, без обид. Может быть, это дело вкуса, я старался донести мысль, что все условия лучше привести к булевскому виду, тем более, что такие возможности есть, и есть они, наверное, вовсе не потому, что "программисты делятся на три типа - на тех, кто понимает троичную логику и на тех, кто ее не понимает" (с). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2008, 07:07 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
softwarer Текст до смайлика следовало бы писать с отдельной строки. Как-никак заголовок.Спасибо, теперь исправленный вариант. В Реляционной алгебре, которую и реализуют Реляционные СУБД троичная система исчисления ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2008, 12:26 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
VoDA[quot softwarer] В Реляционной алгебре, которую и реализуют Реляционные СУБД троичная система исчисления Троичная система исчисления (это в которой циферки 0,1,2) и даже двоичная (эта в которой циферки 0,1) это совсем не тоже самое, что многозначная логика. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2008, 13:29 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
Локшин МаркТроичная система исчисления (это в которой циферки 0,1,2) Не обязательно, кстати. По мне красивей та, в которой цифирки -1, 0 и 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2008, 14:27 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
softwarer Локшин МаркТроичная система исчисления (это в которой циферки 0,1,2) Не обязательно, кстати. По мне красивей та, в которой цифирки -1, 0 и 1. Ну для устного счета мне привычнее несимметричная... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2008, 14:54 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
Локшин МаркТроичная система исчисления (это в которой циферки 0,1,2) и даже двоичная (эта в которой циферки 0,1) это совсем не тоже самое, что многозначная логика.Но многозначная логика также и " 0,1, 2, 3, 4 " И " 0, -1, -2, 1, 2, 3 " (цифры от балды) А как правильнее тогда назвать логику: 0, 1, unknown ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2008, 10:54 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
VoDAА как правильнее тогда назвать логику: 0, 1, unknown ??? Вы неправильно ставите цифирки. Логика "0, 1, unknown" - это на самом деле логика "0, unknown, 1", и на самом деле это логика "0, 1, 2". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2008, 12:33 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
softwarerЛогика "0, 1, unknown" - это на самом деле логика "0, unknown, 1", и на самом деле это логика "0, 1, 2" -- но ведь для UNKNOWN действуют другие правила: true AND unknown = unknown и т.п. Имхо, не зря стали обозначать эту самую "третью циферку" НЕ в виде арабской цифры, а в виде буквенного литерала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2008, 14:26 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
Ozzy The Terrible-- но ведь для UNKNOWN действуют другие правила: true AND unknown = unknown Плюньте в лицо тому, кто Вам сказал такую глупость. Код: plaintext 1. 2. 3. 4. 5. 6. С любопытством жду примеров исключения из правил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2008, 14:59 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
softwarer Ozzy The Terrible-- но ведь для UNKNOWN действуют другие правила: true AND unknown = unknown Плюньте в лицо тому, кто Вам сказал такую глупость. Код: plaintext 1. 2. 3. 4. 5. 6. С любопытством жду примеров исключения из правил. зач о т ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2008, 15:23 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
Сорри, я неправильно выразил первую мысль: прочитал фразу "Троичная система исчисления (это в которой циферки 0,1,2)" [цитирую Локшина Марка] и выделил для себя именно слова "система счисления", т.е. "алфавит" для выражения любых чисел. Вот и хотел сказать, что набор {0, unknown, 1} не предназначен для выражения через него какого-либо числа вообще, т.к. применяется совершенно для других целей, а именно для вычисления логич. выражений. авторС любопытством жду примеров исключения из правил. от меня не ждите ; я знаю про эту аналогию (читал не то у Селко, не то в книге "Задачи по SQL" С.И. Моисеенко, не помню точно). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2008, 19:09 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
softwarerС любопытством жду примеров исключения из правил.Ну исключений не будет, а вот критика такого подхода... У Ozzy The Terrible операции описываются очень простой таблицей (он правда не привел ее полностью, но думаю, что каждый может нарисовать), а у вас подход чрезвычайно сложный. Для того, чтобы описать такие элементарные операции, как OR, AND, NOT потребовалось а) ввести отношение порядка б) определить операции min и max в) ввести операцию вычитания Очень уж нерационально, хотя изоморфный алгебраический объект мы несомненно получим. У вашего подхода преимущество только в том, что он допускает простое обобщение на случаи совсем уж многозначных логик вплоть до "нечеткой" логики, где множество допустимых значений континуально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2008, 09:35 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
softwarerP. S. Программисты делятся на три типа - на тех, кто понимает троичную логику и на тех, кто ее не понимает Не так 1. Программист понимает троичную логику 2. Программист не понимает троичную логику 3. Не определено :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2008, 16:02 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
MGRНе так 1. Программист понимает троичную логику 2. Программист не понимает троичную логику 3. Не определено :) Это формулировка для тех, кому все надо разжевывать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2008, 17:24 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
FALSE AND NULL = FALSE Почему так приняли, как это можно объяснить? Что бы ни стояло на месте NULL, что с FALSE-ом не пересекай, не получишь больше чем FALSE? PS: А потом я задам еще один глупый вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2008, 17:52 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
softwarer Ozzy The Terrible-- но ведь для UNKNOWN действуют другие правила: true AND unknown = unknown Плюньте в лицо тому, кто Вам сказал такую глупость. Код: plaintext 1. 2. 3. 4. 5. 6. С любопытством жду примеров исключения из правил.Баловство все это ;) исходя из ваших правил: false AND unknown должно давать ответ false, тогда !(false AND unknown) должно выдать true . Ваш предпочитаемый сервер Oracle в хранимке выдает другой результат: Наполнение БД для получения значения NULL: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Сама процедура: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. Результат: Код: plaintext 1. 2. 3. 4. PS Меня на дисциплинах по базам данных учили, что любой сравнение с unknown дает unknown. для логических выражений типа case, where и подобных unknown трактуется как NOT TRUE . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2008, 18:02 |
|
||
|
Странность при сопоставлении: <string> LIKE null в разных СУБД.
|
|||
|---|---|---|---|
|
#18+
Н-дас... хотел разгромить оппонента, но не получилось... softwarer похоже прав, по крайней мере для Oracle. Некоторые доработки хранимки дают интересный результат. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Заменив расчет abit := (cnumber = 1); на abit := (cnumber = 1) AND (1 = 0); получаем false вместо unknown я в печали. нужно попытаться проверить для других СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2008, 18:08 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=35586443&tid=1553043]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
72ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 161ms |

| 0 / 0 |
