|
|
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. почему ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 15:37 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxx Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. почему ? oradocALL Compares a value to every value in a list or returned by a query. Must be preceded by =, !=, >, <, <=, >=. Can be followed by any expression or subquery that returns one or more values. Evaluates to TRUE if the query returns no rows . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 15:53 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
FogeloradocALL Compares a value to every value in a list or returned by a query. Must be preceded by =, !=, >, <, <=, >=. Can be followed by any expression or subquery that returns one or more values. Evaluates to TRUE if the query returns no rows . хорошо, а почему сделали-то так ? где логика ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 16:00 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxxFogelпропущено... хорошо, а почему сделали-то так ? где логика ?Представь, что ты пишешь функцию, котора принимает на вход * атомарное значение * массив * оператор Она возвращает false, если оператор возвращает false хотя бы для одного элемента массива, иначе true. Какова будет твоя логика если массив пустой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 16:08 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxxгде логика ?тебе кажется, что логики нет, поскольку для тестов ты используешь пример, не имеющий отношения к повседневной жизни ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 16:28 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopКакова будет твоя логика если массив пустой? операция сравнения с пустым множеством по хорошему должна выдавать null уж точно не true ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 16:34 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
--Eugene--nxxгде логика ?тебе кажется, что логики нет, поскольку для тестов ты используешь пример, не имеющий отношения к повседневной жизни изначально у меня было нечто типа Код: plsql 1. 2. 3. 4. при этом запись master с 0 detail вполне реальные данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 16:42 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxxдолжна выдавать null уж точно не trueтогда уж не NULL, а UNKNOWN Nulls in Conditions A condition that evaluates to UNKNOWN acts almost like FALSE. For example, a SELECT statement with a condition in the WHERE clause that evaluates to UNKNOWN returns no rows. However, a condition evaluating to UNKNOWN differs from FALSE in that further operations on an UNKNOWN condition evaluation will evaluate to UNKNOWN. Thus, NOT FALSE evaluates to TRUE, but NOT UNKNOWN evaluates to UNKNOWN. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 16:50 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxxdbms_photoshopКакова будет твоя логика если массив пустой? операция сравнения с пустым множеством по хорошему должна выдавать null уж точно не trueЧто, простите? Ты сравниваешь "элемент" с "множеством"? А где ты такую операцию встречал? В нормальном мире операторы могут сравнивать операнды одного типа или приводимых типов. В твоем случае выполняется поэлементное сравнение. Изначальное состояние true, оно может стать false если будет хоть один элемент для которого сравнение вернет false. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:05 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopИзначальное состояние true, оно может стать false если будет хоть один элемент для которого сравнение вернет false. Ну и чем тогда отличается: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:17 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxxгде логика ? В школе, вестимо. Учите, какие уnверждения верны про членов пустого множества. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:20 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopИзначальное состояние true, оно может стать false если будет хоть один элемент для которого сравнение вернет false. вы не к тому придираетесь "Изначальное состояние true" это особенности реализации с точки зрения клиента как раз всё наоборот (в выборке нет записей пока все условия не определены) ну а как известно "клиент всегда прав" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:25 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
SYНу и чем тогда отличается: Это даже не смешно. SYНу и чем тогда отличается: Код: plsql 1. Фраза в переводе на русский : Что один доллар Вам должны, что ничего все едино. SY Код: plsql 1. Любой из несуществующих Ваших кредиторов может смело требовать с Вас доллар. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:26 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
SY, Простите, у Вас не любой, у Вас каждый. Любой у ТС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:28 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxxс точки зрения клиента как раз всё наоборот т.е. изначальное состояние UNKNOWN с точки зрения клиента ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:30 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxx с точки зрения клиента Задача программиста, как прикладного математика - в первую очередь правильно перевести хотелки клиента на язык математики. А потом уж решать задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:34 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
SYНу и чем тогда отличаетсяЭто троллинг? Оператор сравнения атомарных значений (одно из которых null) и поэлементное сравнение с элементами множества (которое в конкретном случае пустое). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:34 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxxdbms_photoshopИзначальное состояние true, оно может стать false если будет хоть один элемент для которого сравнение вернет false. вы не к тому придираетесь "Изначальное состояние true" это особенности реализации с точки зрения клиента как раз всё наоборот (в выборке нет записей пока все условия не определены) ну а как известно "клиент всегда прав"Если цель была убедиться в своей "правоте" без попыток взглянуть на проблему под другим углом, то, думаю, она достигнута. А вообще если ты когда-нибудь столкнешься с функциональным программированием то откроешь для себя новый дивный мир и логика станет логичнее. Вне зависимости от "особенностей реализации". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:36 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopSYНу и чем тогда отличаетсяЭто троллинг? Возможно SY имел ввиду, что путь пофантазировать на тему как надо бы писать, на месте индусов из Oracle, на Темную сторону ведет. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:37 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньевnxx с точки зрения клиента Задача программиста, как прикладного математика - в первую очередь правильно перевести хотелки клиента на язык математики. А потом уж решать задачу. ОК, объясните чисто по математике как там выходит true ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:39 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxx, Вероятно, по симметрической разнице или по исключению. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:43 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxx, Трудности с прочтением всего, что было выше? Любое утверждение про члена пустого множества, которое не ложно по другим причинам и не противоречит пустоте множества - верно. Как я уже сказал, все кто является Вашим несуществующим кредитором могут смело требовать с Вас 999 рублей. Так понятно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:43 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxxОК, объясните чисто по математике как там выходит true.. запахло жареным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:43 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxx, А для каких целей Вы используете all в рамках своих задач? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:48 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
--Eugene--запахло жареным Запахло жареным, это, когда Элик модератора оскорбляет... А тут, системные проблемы в образовательном процессе и его связи с экономикой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:50 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
envА для каких целей Вы используете all в рамках своих задач?по идее, ему грамотнее было бы задействовать NOT EXISTS в данном случае. ошибаюсь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 17:52 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopПредставь, что ты пишешь функцию, котора принимает на вход * атомарное значение * массив * оператор Она возвращает false, если оператор возвращает false хотя бы для одного элемента массива, иначе true. Какова будет твоя логика если массив пустой?Представь, что ты пишешь функцию, которая возвращает длину строки в символах. Какова будет твоя логика, если строка пустая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:01 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньевкак надо бы писать, на месте индусов из OracleВо время реализации этой логики Индия ещё была отсталой страной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:01 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
AmKaddbms_photoshopПредставь, что ты пишешь функцию, котора принимает на вход * атомарное значение * массив * оператор Она возвращает false, если оператор возвращает false хотя бы для одного элемента массива, иначе true. Какова будет твоя логика если массив пустой?Представь, что ты пишешь функцию, которая возвращает длину строки в символах. Какова будет твоя логика, если строка пустая? Неудачный пример, в нем нет множества. А речь именно о нем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:05 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopЭто троллинг? Оператор сравнения атомарных значений (одно из которых null) и поэлементное сравнение с элементами множества (которое в конкретном случае пустое). Пока я вижу только твою ничем не подтвержденную интерпретацию. Все что ecть в документации это "Compares a value to every value in a list or returned by a query". Ну да ладно. Примем твою интерпретацию. X= ALL (subquery) сравнивает поэлементно. Ну а что тогда делает X= (subquery)? Чем это отличается от X= ALL (subquery) кроме как в первом случае возвращаемое множество ограничено одним элементом? SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:10 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
XMLerНеудачный пример, в нем нет множества. А речь именно о нем.AmKadпропущено... Представь, что ты пишешь функцию, которая возвращает длину строки в символах количество элементов коллекции (aka CARDINALIRY() ). Какова будет твоя логика, если строка коллекция пустая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:13 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
SY, Если посмотреть, как строится план, то оптимизатор смотрит по логике "не существует ни одного элемента в множестве, значение которого не совпадает с указанным элементом". Т.е. для такого запроса -filter : not exists (... where null is not null) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:15 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
Я думаю все сводится к тому что ALL/ANY/SOME попaли в Oracle через жeлание Oracle соответствовать SQL стандартам и Oracle с нетрадиционной ориентацией на NULL пришлось приспосабливаться. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:17 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
SYdbms_photoshopЭто троллинг? Оператор сравнения атомарных значений (одно из которых null) и поэлементное сравнение с элементами множества (которое в конкретном случае пустое). Пока я вижу только твою ничем не подтвержденную интерпретацию. Все что ecть в документации это "Compares a value to every value in a list or returned by a query". Ну да ладно. Примем твою интерпретацию. X= ALL (subquery) сравнивает поэлементно. Ну а что тогда делает X= (subquery)? Чем это отличается от X= ALL (subquery) кроме как в первом случае возвращаемое множество ограничено одним элементом? SY. Код: plaintext Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:17 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
AmKaddbms_photoshopПредставь, что ты пишешь функцию, котора принимает на вход * атомарное значение * массив * оператор Она возвращает false, если оператор возвращает false хотя бы для одного элемента массива, иначе true. Какова будет твоя логика если массив пустой?Представь, что ты пишешь функцию, которая возвращает длину строки в символах. Какова будет твоя логика, если строка пустая?Если мы затронули пустые строки, то воспользуясь случаем замечу, что Оракловая реализация отстой. Вот результат для Impala и он представляется мне абсолютно логичным. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:24 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopпредставляется мне абсолютно логичнымнеееее а как же прививание с пеленок идеи тождественности пустой строки и NULL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:34 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
--Eugene--Представь, что ты пишешь функцию, которая возвращает длину строки в символах количество элементов коллекции (aka CARDINALIRY() ). Какова будет твоя логика, если строка коллекция пустая?[/quot] опять мимо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:34 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
--Eugene--Представь, что ты пишешь функцию, которая возвращает длину строки в символах количество элементов коллекции (aka CARDINALIRY() ). Какова будет твоя логика, если строка коллекция пустая?Согласно доке ожидал null, но не тут-то было. Видимо я не знаю, что такое empty table. http://docs.oracle.com/cd/E11882_01/server.112/e41084/functions022.htm#SQLRF06305 If the nested table is empty, or is a null collection, then CARDINALITY returns NULL Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:35 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopЕсли мы затронули пустые строки, то воспользуясь случаем замечу, что Оракловая реализация отстой.Здесь я могу с тобой согласиться. Но поведение = all при no rows returned я считаю нелогичным. Можете кидать в меня камнями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:38 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
AmKad, Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. Так что не устраивает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:42 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop Код: plsql 1. Это empty table? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:47 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopТак что не устраивает?расхождение с докой:докаIf the nested table is empty , or is a null collection, then CARDINALITY returns NULL не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:47 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
AmKadЭто empty table? IS EMPTY ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:49 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
--Eugene-- IS EMPTY Ну вот: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 18:55 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
--Eugene--dbms_photoshopТак что не устраивает?расхождение с докой:докаIf the nested table is empty , or is a null collection, then CARDINALITY returns NULL не?Да, тут по видимому две проблемы. Во первых расхождение с докой, а во-вторых криво работает. Логично, если EMPTY - 0, null collection - null. Но для первой коллекции я ожидал 1 в результате. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 19:00 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
--Eugene--, Подлец ты все-таки, увел обсуждение от all к cardinality. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 19:03 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, И почему-же у ANY изначальное FALSE а у ALL изначальное TRUE? Круг замкнулся. Не говоря о том что это уже implementation так-как для ANY прoще искать одно соответствие (и посему установить изначальное в FALSE) а для ALL одно не соответствие (и посему установить изначальное в TRUE). Вопрос в том что есть результат сравнения скалярa с элементом пустого множества (TRUE/FALSE/UNKNOWN)? Согласно SQL in Nutshell, 3rd edition by Kevin Kline это заложено в SQL стандарт: SQL2003 Syntax SELECT ... WHERE expression comparison {ALL | ANY | SOME} ( subquery ) Keywords WHERE expression Tests a scalar expression (such as a column) against every value in the subquery for ALL, and against every value until a match is found for ANY and SOME. All rows must match the expression to return a Boolean TRUE value for the ALL operator, while one or more rows must match the expression to return a Boolean TRUE value for the ANY and SOME operators. comparison Compares the expression to the subquery. The comparison must be a standard comparison operator like =, <>, !=, >, >=, <, or <=. Rules at a Glance The ALL operator returns a Boolean TRUE value when one of two things happens: either the subquery returns an empty set (i.e., no records), or every record in the set meets the comparison. ALL returns FALSE when any record in the set does not match the value comparison. The ANY and SOME operators return a Boolean TRUE when at least one record in the subquery matches the comparison operation, and FALSE when no record matches the comparison operation (or when a subquery returns an empty result set). If even one return value of the subquery is NULL, the operation evaluates as NULL, not as TRUE. SY. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 19:22 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopдля первой коллекции я ожидал 1 в результате.что-то ниже спины подсказывает мне, что CARDINALITY не считает NULL.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 19:23 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
ElicВо время реализации этой логики Индия ещё была отсталой страной. Главное, что логика была и есть по сей день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 19:31 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
XMLerНеудачный пример, в нем нет множества. А речь именно о нем. Как раз есть - упорядоченное. Но пример показывает, что логика ущербна. А вот требование пустоты задает не так много вариантов ответа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 19:33 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
ElicВо время реализации этой логики Индия ещё была отсталой страной. В том смысле, что важна не реализация (индусы, индийцы или индейцы не суть), а то, откуда росли ноги реляционной агебры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 19:36 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
SYИ почему-же у ANY изначальное FALSE а у ALL изначальное TRUE?Видимо для того, чтоб имело смысл переключать true -> false и false -> true а не false -> false. SYНе говоря о том что это уже implementation так-как для ANY прoще искать одно соответствие (и посему установить изначальное в FALSE) а для ALL одно не соответствие (и посему установить изначальное в TRUE).Так и делается. Рекомендую перечитать мое сообщение еще раз. SYВопрос в том что есть результат сравнения скалярa с элементом пустого множества (TRUE/FALSE/UNKNOWN)?Касательно обсуждения оксюморонов типа "элемент пустого множества" это не ко мне. Пустое множество на то и пустое, что в нем нет элементов. А то, что пустое множество в случае скаляра преобразуется в NULL ну так это особенности SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 19:58 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
AmKadНу вотЕсли всмонить о том, что сначала выполняется where а потом группировка, то все становится на свои места. Твоя collect как раз и добавляет группировку по константам в запрос. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 20:05 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
SYИ почему-же у ANY изначальное FALSE а у ALL изначальное TRUE? Ребят, я вам удивляюсь. У меня дочка в 5 классе понимала почему из утверждения "В этой комнате все драконы красные" не следует - "в этой комнате есть хотя бы один красный дракон". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 21:45 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
AmKaddbms_photoshopЕсли мы затронули пустые строки, то воспользуясь случаем замечу, что Оракловая реализация отстой.Здесь я могу с тобой согласиться. Но поведение = all при no rows returned я считаю нелогичным. Можете кидать в меня камнями.Его можно считать НЕинтуитивным и тут я даже могу с тобой согласиться, но ошибочно считать нелогичным. Как я уже заметил, взглянуть по новому помогает понимание функционального программирования и в частности понятия tail-recursive . Например, в той же scala, если цель проверить равенство элемента всем элементам множества, то выполняется проверка для первого элемента и рекурсивный вызов прокерки для оставшихся. Останов происходит либо когда получили НЕравенство либо когда множество пустое. При этом, когда множество пустое мы НЕ знаем оно было изначально пустым или мы пришли на последний уровень рекурсии. И это НЕ особенность реализации. Так что я лишний раз бы рекомендовал не зацикливать свою жизнь на Оракле, а изучать другие языки и инструменты. Поизучай scala и просто попытайся написать проверку с использованием функционального подхода. Потом люди, способные мыслить только императивно будут вызывать у тебя лишь улыбку или сожаление... или что-то еще в зависимости от того насколько агрессивно и самоуверенно они остаивают свою правоту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 22:02 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
AmKad, Кто-то может спросить, при чем здесь функциональное программирование? При том, что во-первых дает возможность взглянуть на ситуацию под другим углом, во-вторых плавнее перейти к булевой алгебре. Недавно уже возникала ситуация, чтоб на равных обсуждать проблему надо иметь хотя бы примерно равный фундамент знаний. В великолепной резонансной теме ( regexp_like ) я порекомендовал авторше почитать про конечные автоматы, если она хочет продолжить разговор на тему почему задача не разрешима регулярными выражениями, но почему-то мой пост с ссылкой потерли, при том что я там никого не оскорблял. Что как бы намекает на компетенцию модераторов (точнее отдельного кадра (видимо tru55) который решил потереть то, что было написано). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 22:19 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевSYИ почему-же у ANY изначальное FALSE а у ALL изначальное TRUE? Ребят, я вам удивляюсь. У меня дочка в 5 классе понимала почему из утверждения "В этой комнате все драконы красные" не следует - "в этой комнате есть хотя бы один красный дракон". вот это вообще не про то я второго не утверждал логика была другая - проверим что "В этой комнате все драконы красные" - в этой комнате 0 драконов - следовательно в этой комнате 0 красных драконов - следовательно утверждение "В этой комнате все драконы красные" неверно PS мне казалось что sql задумывался для аналитиков, поближе к естественному языку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 22:49 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxxмне казалось что sql задумывался для аналитиков, поближе к естественному языкуА ты логику в универе учил? Квантор всеобщности, квантор существования и всё такое? Утверждение Код: plaintext Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 23:08 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxxa- проверим что "В этой комнате все драконы красные" b- в этой комнате 0 драконов c- следовательно в этой комнате 0 красных драконов d- следовательно утверждение "В этой комнате все драконы красные" неверно В школу. Переход из с в d неверный. Никакой связи между этими утверждениями нет. Ибо утверждение "В этой комнате все драконы красные. неверно" тождественно равно утверждению "в комнате есть не красный дракон". Учите логику. Без неё в программировании делать нечего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2017, 23:53 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевВ том смысле, что важна не реализация (индусы, индийцы или индейцы не суть), а то, откуда росли ноги реляционной агебры.Откуда бы они не росли, я не вижу извинений перед индусами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 07:27 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
ElicОткуда бы они не росли, я не вижу извинений перед индусами. Ты прав это не вина индусов, что они все сделали правильно. Не многие на это способны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 11:16 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
Кстати, некоторые думают, что авторОсновная особенность NULLа заключается в том, что он не равен ничему, даже другому NULL так вот, это не совсем так: Код: plsql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 11:28 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
выше пропущено слово любому ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 11:29 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев Код: plsql 1. Подобные формулировки только запутывают имхо. Во-первых, "= any" не бинарная операция и по сути вообще никакого сравнения не выполнялось. Во-вторых, раз ты так же уверенно как SY используещь формулировку "члену пустого множества" может приведешь определение что это? Или это нельзя понять, а можно только почувствовать? :)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 12:42 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshopСергей Арсеньев Код: plsql 1. Подобные формулировки только запутывают имхо. Во-первых, "= all" (и "= any" тоже) не бинарная операция и по сути вообще никакого сравнения не выполнялось. Во-вторых, раз ты так же уверенно как SY используещь формулировку "члену пустого множества" может приведешь определение что это? Или это нельзя понять, а можно только почувствовать? :))Fixed. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 13:01 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньеввыше пропущено слово любомуПосле введения квантора стало получше. Что-то у меня проблемы с концентрацией сегодня. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2017, 13:02 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевSYИ почему-же у ANY изначальное FALSE а у ALL изначальное TRUE? Ребят, я вам удивляюсь. У меня дочка в 5 классе понимала почему из утверждения "В этой комнате все драконы красные" не следует - "в этой комнате есть хотя бы один красный дракон". и так 5 класс, урок информатики МарьяИвановна: Комната пустая. Истиино или нет утверждение "В этой комнате все драконы красные" ? Дочка: Истинно, так как из "В этой комнате все драконы красные" не следует - "в этой комнате есть хотя бы один красный дракон". Вовочка: Хз. Из "В этой комнате все драконы красные" следует что Все драконы в этой комнате в красные (в комнате нет зеленых драконов). В тоже время, Евгений и его дочка на вопрос "В этой комнате все драконы зеленые" отвечат утвердительно, но в комнате ВСЕ драконы красные. Парадокс. UNKNOWN. dbms_photoshop скормил фразу "В этой комнате все драконы красные" dbms_sql2.expand_sql_text результат трансформации в (+) оказался "В этой комнате нет не красных драконов", а ето утверждение для пустой комнаты TRUE Бага трансформации из ANSI в natural ps интересно что вернет DB2? ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2017, 09:26 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
StaxВ тоже время, Евгений и его дочка на вопрос "В этой комнате все драконы зеленые" отвечат утвердительно, но в комнате ВСЕ драконы красные. Парадокс. Никакого парадокса тут. Даже если в комнате есть дракон, то может оказаться, что кто-то из говорящих дальтоник. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2017, 09:37 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
Сергей Арсеньев, Из сунувшихся в комнату с драконом, кмк, получается малорепрезентативная выборка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2017, 09:39 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
Сергей АрсеньевStaxВ тоже время, Евгений и его дочка на вопрос "В этой комнате все драконы зеленые" отвечат утвердительно, но в комнате ВСЕ драконы красные. Парадокс. Никакого парадокса тут. Даже если в комнате есть дракон, то может оказаться, что кто-то из говорящих дальтоник. :) даже если Э́ллисон дальтонник, трансформация в натурал доллжна проходить "правильно", и имхо для пустой комнаты UNKNOWN ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2017, 10:10 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
Stax и имхо для пустой комнаты UNKNOWN И ты прав... (c) Древняя притча ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2017, 10:51 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
envИз сунувшихся в комнату с драконом, кмк, получается малорепрезентативная выборка. Кмк, малорепрезентативная среди тех кто вышел. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2017, 10:52 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
Staxdbms_photoshop скормил фразу "В этой комнате все драконы красные" dbms_sql2.expand_sql_text результат трансформации в (+) оказался "В этой комнате нет не красных драконов", а ето утверждение для пустой комнаты TRUE Бага трансформации из ANSI в natural Исключительно как ирония: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2017, 11:57 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
dbms_photoshop, Эта та самая комната с красными драконами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2017, 11:59 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
envdbms_photoshop, Эта та самая комната с красными драконами? судя по бликам (тени) на полу, возле двери причаились как минимум два красных дракона ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2017, 12:25 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
envЭта та самая комната с красными драконами? Это комната в которой все драконы красные и им жутко интересен наш спор. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2017, 14:34 |
|
||
|
почему так ?
|
|||
|---|---|---|---|
|
#18+
nxxFogelпропущено... хорошо, а почему сделали-то так ? где логика ? Логика здесь так стоит Оператор вида Код: plsql 1. развертывается так: (subquery) интерпретируется как множество X: Код: plsql 1. =>y compare_op ALL (subquery) = y compare_op ALL (X) compare_op ALL развертывается так: Код: plsql 1. [не существует такого элемента x в множестве X, определяемым результатом выполнения subquery, для которого (y compare_op x) != true ] Поэтому для Код: plsql 1. результат сравнения - Истина (в множестве результатов возвращаемых (select 1 from dual where 1=0) нет элементов, поэтому не существует даже кандидата на то, чтобы дать Ложь при сравнении с 999. Элемента, способного не дать истину при сравнении с 999, не существует). Наоборот, Код: plsql 1. развертывается как Код: plsql 1. Из этого следует, например, что Код: plsql 1. эквивалентно Код: plsql 1. Но Код: plsql 1. не эквивалентно Код: plsql 1. Для ANY в этом случае достаточно существования хотя бы одного элемента {x:(subquery)} для которого Код: plsql 1. , а NOT IN разворачивается NOT (y = ANY (subquery)), т.е. (y != x) = true должно выполнится для каждого x из subquery. т.е. NOT IN эквивалентен y != ALL(subquery) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2017, 15:11 |
|
||
|
|

start [/forum/topic.php?all=1&fid=52&tid=1885234]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
238ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 190ms |
| total: | 516ms |

| 0 / 0 |
