|
|
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
Встретился вот такой вот вопрос в тестах, ИМХО, правильный ответ не верен или у меня все еще недопонимания в булевой логике! You want to display item prices from inventory with these desired results: 1. The price of each item is increased by 25 percent. 2. The original price must be over $25. 3. The item manufacturer number must be 25001 or 25050. 4. The original price when multiplied by 25% equals $4. You query the database with this SQL statement: Код: plaintext 1. 2. 3. 4. 5. How many results are covered by this query? Only two of the desired results are achieved when the script is executed. Desired result #3 which specifies that the item manufacturer number be 25001 or 25050, and desired result #4 which specifies that the price, when multiplied by 25%, equal $4. The statement does not specify that the price of each item be increased by 25 percent or that the price must be over $25 (since the OR logical operator is used instead of the AND operator). ИМХО, ответ ни одного! Это условие ведь эквивалентно Код: plaintext 1. 2. 3. 4. А это означает что если у некоторго inventory price > 25, то он показан в любом случае, так что требования manufacturer number must be 25001 or 25050 и original price when multiplied by 25% equals $4 тоже не выполнены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 15:02:40 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
AND имеет более высокий приоритет по сравнению с OR. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 15:06:56 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
to Al Из этого я и исходила см. поставленные мною скобки. И тогда ни одно требование не удовлетворено в запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 15:09:53 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
Violina, nado ponjatj, shto ( TRUE or FALSE ) = ( TRUE ) ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 15:11:04 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
ilji to, shto: The original price when multiplied by 25% equals $4. = price * 0.25 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 15:13:50 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
А какие ответы предлагаются? Оговариватся ли начальное значение PRICE? Есть ли зависимость PRICE<=>MANIFACTURED_ID? А то большой разброс результатов получается. Код: 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. Кстати, исключительный случай, начальное значение PRICE = 0 или 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 15:33:36 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
Это мне все понятно. То есть если ты утверждаешь что условие price * .25 = 4.00 выполнено. Допустим есть запись price = 1.00 manufacturer_id = 25050 Она попадает в выборку согласно (OR manufacturer_id = '25050') хотя этому требованию price * .25 = 4.00 не удовлетворяет! Допустим есть запись price = 840.00 manufacturer_id = 88769 Она попадает в выборку согласно (OR price > 25.00) и таким образом требование manufacturer number must be 25001 or 25050 и price * .25 = 4.00 тоже не выполняются. Вывод - для любого требования этим запросом могут быть выбраны записи нарушающие его! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 15:37:46 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
Violina, a razve tam napisano, shto mezhdu 1., 2., 3. i 4. definicijami rezultatov nado stavitj AND i jeslji nje vipoljajetsja 1. to vesj rezultat njepraviljnij ? Takzhe tam njeskazano, shto selekt dolzhen vernutj hotj adnu strochku. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 15:46:17 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
to Denis Содержания таблицы не приводится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 15:49:28 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
to Delirium Явно не сказано, но в таком контексте всегда имеется ввиду скольким или каким из приведенных требований будут удовлетворять результаты сего запроса. Например неудовлетворение требования 1 как раз и объясняется использованием OR вместо AND. The statement does not specify that the price of each item be increased by 25 percent or that the price must be over $25 (since the OR logical operator is used instead of the AND operator). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 15:55:22 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
2Violina Что-то я не понимаю твоих рассуждений. Во-первых написано How many results are covered by this query? Очевидно, что 3 и 4 (см. свой эквивалент). Думаю элемент множество тебе знаком? 1. The price of each item is increased by 25 percent. Отпадает сразу. 2. Не удовлетворяет условию 4 (The original price when multiplied by 25% equals $4) да и прикручен при помощи OR ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 16:10:09 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
Что-бы утверждать, что будут выполняться условия 3 и 4, должен быть такой запрос: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. или такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Я думаю, что это просто ошибка теста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 16:10:28 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
to raven13 По 1 сомнений нет, там все ясно. То что требования 2 и 4 взаимоисключающие тоже ясно. То что требование 2 прикручено с помощью OR означает что могут быть возвращены записи ему не удовлетворяющие. Но верно и следующее - остальные требования прикручены к 2 через OR. То есть если оно выполнено, то могут быть возвращены записи не удовлетворяющие ВСЕМ другим Например price = 840.00 manufacturer_id = 88769 В общем правильный ответ - запрос вернет множество записей, для которых выполняется либо требование 2 либо 3 и 4. Если смотреть на ситуацию что требование 2 прикручено с помощью OR и поэтому может быть и false, то понятно почему ответ таков. Но если посмотреть на ситуацию с позиции что остальные требования прикручены к 2 через OR ... В общем мораль, не лезть в дебри при анализе вопросов:-) Ладно закрываем тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 16:50:28 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
Я посмотрел, твой вопрос взят из старого теста Self Test. Я тебе советую взять более новый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 16:59:09 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
to softbuilder Спасибо за то что ты уделяешь много внимания и усилий для ответа на мои вопросы:-) Тесты действительно старые, я их взяла с рекомендованной тобой ссылке http://www.insoft.ru/alexey/oracle.asp А новые я не знаю где взять. Все ссылки которые я находила ссылаются на китайцев там тоже старые:-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 17:08:57 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
В новой версии вопрос сформулирован так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Ответ: Код: 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. 33. 34. 35. 36. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 17:10:16 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
2Violina [Quote] То что требование 2 прикручено с помощью OR означает что могут быть возвращены записи ему не удовлетворяющие. Но верно и следующее - остальные требования прикручены к 2 через OR. То есть если оно выполнено, то могут быть возвращены записи не удовлетворяющие ВСЕМ другим Например price = 840.00 manufacturer_id = 88769 В общем правильный ответ - запрос вернет множество записей, для которых выполняется либо требование 2 либо 3 и 4. [/Quote] А как же "ИМХО, ответ ни одного" :-) ? [Quote] В общем мораль, не лезть в дебри при анализе вопросов:-) [/Quote] Это верно 2Soft Что-бы утверждать, что будут выполняться условия 3 и 4, должен быть такой запрос: Хм... они и так выполняются :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 17:44:02 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
to raven13 В общем правильный ответ - запрос вернет множество записей, для которых выполняется либо требование 2 либо 3 и 4. А как же "ИМХО, ответ ни одного" :-) ? Ни одного в смысле что среди перечисленных требований нет ни одного которое было бы удовлетворено во всех результирующих строках. Что-бы утверждать, что будут выполняться условия 3 и 4, должен быть такой запрос: Хм... они и так выполняются :-) Не всегда! я же приводила пример, запись price = 840.00 manufacturer_id = 88769 попадает в результат но требования 3 и 4 не выполняются. Таким образом нельзя сказать что результат запроса удовлетворяет требованиям 3 и 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 18:00:03 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
Я еще сумятицу внесу, Al же правильно заметил: "AND имеет более высокий приоритет по сравнению с OR." Сравни результаты: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Всего-то переставил 2 условия. Т.е. следует, учитывая порядок условий в запросе, раскручивать их слева направо, держа мысль про приоритетность AND, как "плюс" и "умножить". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 18:12:27 |
|
||
|
Приоритет операторов AND и OR
|
|||
|---|---|---|---|
|
#18+
to Denis Ты не поверишь, но я именно такой тест провела чтобы приоритет проверить прежде чем топик создать:-) Поэтому и переформатировала запрос для наглядности, см. первый постинг. Код: plaintext 1. 2. 3. 4. Радует что они изменили формулировку этого вопроса в новой версии теста, значит им поступали замечания, я не первая:-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 18:17:44 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32175456&tid=1990201]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
194ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 563ms |

| 0 / 0 |
