Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / почему так ? / 25 сообщений из 77, страница 1 из 4
13.09.2017, 15:37
    #39520526
nxx
nxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SQL> 
SQL> select 1
  2  from dual
  3  where 999 = all (select 1 from dual where 1=0)
  4  /
 
         1
----------
         1
 
SQL> 



почему ?
...
Рейтинг: 0 / 0
13.09.2017, 15:53
    #39520533
Fogel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
nxx
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SQL> 
SQL> select 1
  2  from dual
  3  where 999 = all (select 1 from dual where 1=0)
  4  /
 
         1
----------
         1
 
SQL> 



почему ?


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 .
...
Рейтинг: 0 / 0
13.09.2017, 16:00
    #39520539
nxx
nxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
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 .

хорошо, а почему сделали-то так ?
где логика ?
...
Рейтинг: 0 / 0
13.09.2017, 16:08
    #39520550
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
nxxFogelпропущено...


хорошо, а почему сделали-то так ?
где логика ?Представь, что ты пишешь функцию, котора принимает на вход
* атомарное значение
* массив
* оператор
Она возвращает false, если оператор возвращает false хотя бы для одного элемента массива, иначе true.
Какова будет твоя логика если массив пустой?
...
Рейтинг: 0 / 0
13.09.2017, 16:28
    #39520563
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
nxxгде логика ?тебе кажется, что логики нет, поскольку для тестов ты используешь пример, не имеющий отношения к повседневной жизни
...
Рейтинг: 0 / 0
13.09.2017, 16:34
    #39520566
nxx
nxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
dbms_photoshopКакова будет твоя логика если массив пустой?

операция сравнения с пустым множеством по хорошему должна выдавать null
уж точно не true
...
Рейтинг: 0 / 0
13.09.2017, 16:42
    #39520577
nxx
nxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
--Eugene--nxxгде логика ?тебе кажется, что логики нет, поскольку для тестов ты используешь пример, не имеющий отношения к повседневной жизни

изначально у меня было нечто типа

Код: plsql
1.
2.
3.
4.
update master m
set flag1 = 'Y'
where 
'Y' = all (select flag2 from detail d where d.id = m.id)



при этом запись master с 0 detail вполне реальные данные
...
Рейтинг: 0 / 0
13.09.2017, 16:50
    #39520581
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
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.
...
Рейтинг: 0 / 0
13.09.2017, 17:05
    #39520590
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
nxxdbms_photoshopКакова будет твоя логика если массив пустой?

операция сравнения с пустым множеством по хорошему должна выдавать null
уж точно не trueЧто, простите? Ты сравниваешь "элемент" с "множеством"? А где ты такую операцию встречал?

В нормальном мире операторы могут сравнивать операнды одного типа или приводимых типов.
В твоем случае выполняется поэлементное сравнение.
Изначальное состояние true, оно может стать false если будет хоть один элемент для которого сравнение вернет false.
...
Рейтинг: 0 / 0
13.09.2017, 17:17
    #39520602
SY
SY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
dbms_photoshopИзначальное состояние true, оно может стать false если будет хоть один элемент для которого сравнение вернет false.

Ну и чем тогда отличается:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SQL> select 1 from dual where 1 = (select 1 from dual where 1 = 2);

no rows selected

SQL> select 1 from dual where 1 = all (select 1 from dual where 1 = 2);

         1
----------
         1

SQL> 



SY.
...
Рейтинг: 0 / 0
13.09.2017, 17:20
    #39520604
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
nxxгде логика ?
В школе, вестимо.
Учите, какие уnверждения верны про членов пустого множества. :)
...
Рейтинг: 0 / 0
13.09.2017, 17:25
    #39520610
nxx
nxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
dbms_photoshopИзначальное состояние true, оно может стать false если будет хоть один элемент для которого сравнение вернет false.

вы не к тому придираетесь
"Изначальное состояние true" это особенности реализации
с точки зрения клиента как раз всё наоборот
(в выборке нет записей пока все условия не определены)
ну а как известно "клиент всегда прав"
...
Рейтинг: 0 / 0
13.09.2017, 17:26
    #39520612
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
SYНу и чем тогда отличается:
Это даже не смешно.
SYНу и чем тогда отличается:
Код: plsql
1.
SQL> select 1 from dual where 1 = (select 1 from dual where 1 = 2);


Фраза в переводе на русский : Что один доллар Вам должны, что ничего все едино.

SY
Код: plsql
1.
SQL> select 1 from dual where 1 = all (select 1 from dual where 1 = 2);


Любой из несуществующих Ваших кредиторов может смело требовать с Вас доллар.
...
Рейтинг: 0 / 0
13.09.2017, 17:28
    #39520614
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
SY,

Простите, у Вас не любой, у Вас каждый. Любой у ТС.
...
Рейтинг: 0 / 0
13.09.2017, 17:30
    #39520616
nxx
nxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
nxxс точки зрения клиента как раз всё наоборот


т.е. изначальное состояние UNKNOWN с точки зрения клиента
...
Рейтинг: 0 / 0
13.09.2017, 17:34
    #39520620
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
nxx с точки зрения клиента
Задача программиста, как прикладного математика - в первую очередь правильно перевести хотелки клиента на язык математики. А потом уж решать задачу.
...
Рейтинг: 0 / 0
13.09.2017, 17:34
    #39520621
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
SYНу и чем тогда отличаетсяЭто троллинг?
Оператор сравнения атомарных значений (одно из которых null) и поэлементное сравнение с элементами множества (которое в конкретном случае пустое).
...
Рейтинг: 0 / 0
13.09.2017, 17:36
    #39520623
dbms_photoshop
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
nxxdbms_photoshopИзначальное состояние true, оно может стать false если будет хоть один элемент для которого сравнение вернет false.

вы не к тому придираетесь
"Изначальное состояние true" это особенности реализации
с точки зрения клиента как раз всё наоборот
(в выборке нет записей пока все условия не определены)
ну а как известно "клиент всегда прав"Если цель была убедиться в своей "правоте" без попыток взглянуть на проблему под другим углом, то, думаю, она достигнута.
А вообще если ты когда-нибудь столкнешься с функциональным программированием то откроешь для себя новый дивный мир и логика станет логичнее.
Вне зависимости от "особенностей реализации".
...
Рейтинг: 0 / 0
13.09.2017, 17:37
    #39520625
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
dbms_photoshopSYНу и чем тогда отличаетсяЭто троллинг?
Возможно SY имел ввиду, что путь пофантазировать на тему как надо бы писать, на месте индусов из Oracle, на Темную сторону ведет. :)
...
Рейтинг: 0 / 0
13.09.2017, 17:39
    #39520629
nxx
nxx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
Сергей Арсеньевnxx с точки зрения клиента
Задача программиста, как прикладного математика - в первую очередь правильно перевести хотелки клиента на язык математики. А потом уж решать задачу.

ОК, объясните чисто по математике как там выходит true
...
Рейтинг: 0 / 0
13.09.2017, 17:43
    #39520632
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
nxx,

Вероятно, по симметрической разнице или по исключению.
...
Рейтинг: 0 / 0
13.09.2017, 17:43
    #39520633
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
nxx,

Трудности с прочтением всего, что было выше?

Любое утверждение про члена пустого множества, которое не ложно по другим причинам и не противоречит пустоте множества - верно.

Как я уже сказал, все кто является Вашим несуществующим кредитором могут смело требовать с Вас 999 рублей. Так понятно?
...
Рейтинг: 0 / 0
13.09.2017, 17:43
    #39520634
--Eugene--
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
nxxОК, объясните чисто по математике как там выходит true.. запахло жареным
...
Рейтинг: 0 / 0
13.09.2017, 17:48
    #39520640
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
nxx,

А для каких целей Вы используете all в рамках своих задач?
...
Рейтинг: 0 / 0
13.09.2017, 17:50
    #39520642
Сергей Арсеньев
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
почему так ?
--Eugene--запахло жареным
Запахло жареным, это, когда Элик модератора оскорбляет...

А тут, системные проблемы в образовательном процессе и его связи с экономикой.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / почему так ? / 25 сообщений из 77, страница 1 из 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]