|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
Почтенные коллеги! Оракл умеет чудеса, виражи, CASE, DECODE... Но из академического, если так можно выразиться, любопытства, уже вне контекста могучего диалекта Оракл. Получить выражение, использующее только арифметические операции, которое возвращает 1, если переменная равна 0, иначе саму переменную. я выжал из себя только такое: SELECT ( ((x-y)/(x+y)) * ((x+y)/(x-y)) ) + x FROM (select 0 as x, 9999999 as y) t но одно из чисел табуируется :( Наверняка есть что-то поизящнее? есть кто запросто управляется с теорией чисел и арифметикой? Пресветлый старец Фалоим Московскый. тимтэг:некоммерческое товарищество "Напиджак", издательство "Московский Пустомолец" ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 12:56 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
МистерШоу, "иначе саму переменную" причем тут у? ..... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 13:00 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
МистерШоу я выжал из себя только такое: Я бы спросил, чем это отличается от банального "x+1" :) X (((X-Y)/(X+Y))*((X+Y)/(X-Y)))+ X+1-4 -3 -3-3 -2 -2-2 -1 -1-1 -1E-40 0 0 1 1 1 2 2 2 3 3 3 4 4 4 5 5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 13:07 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
Stax, о, если вы избавитесь от этого Y, вы будете моим кумиром, и буду славить вас где только можно! ну он нужен чтобы превентить деление на 0, если на вход пришел именно 0... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 13:09 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
МистерШоу Stax, о, если вы избавитесь от этого Y, вы будете моим кумиром, и буду славить вас где только можно! ну он нужен чтобы превентить деление на 0, если на вход пришел именно 0... ((x-y)/(x+y))*((x+y)/(x-y)) тождественно равно единице для x <> y и не определено для x = y Ошибка 10 -40 связана с точностью машинных вычислений. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 13:11 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
МистерШоу выражение, использующее только арифметические операции Вот тут вопрос - какие именно операции Вы готовы назвать "арифметическими". Вообще Вам сюда: https://ru.wikipedia.org/wiki/Функция_Хевисайда ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 13:19 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 13:23 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
andrey_anonymous, ну моё выражение для X вернет все же X, а не X + 1 четыре базовые арифметические: +, -, *, / ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 13:26 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
МистерШоу andrey_anonymous, ну моё выражение для X вернет все же X, а не X + 1 Заблуждаетесь. Я посчитал специально для Вас. МистерШоу четыре базовые арифметические: +, -, *, / Операции возведения в степень через них пишите сами. А операции взятия модуля и операции со знаками на одной арифметике - тем более. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 13:29 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
andrey_anonymous, Код: plsql 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.
вывод: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Модератор: пожалуйста, форматируйте свои сообщения. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 13:37 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
хотя, конечно, несу ерунду... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 13:40 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
чушь я написал...сам вижу. тайпкастинг обманул. намудрил я знатно :) Х = х +1 :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 13:45 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
Для избегания zero_divide - nullif или *1d. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 14:05 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
-2- Для избегания zero_divide - nullif или *1d. Не оракель у него... Да и nullif - не арифметика ни разу :) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 14:07 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
МистерШоу, Можно задачу свести к получению целой части числа. Которую получить можно либо встроенными средствами bitand/trunc/etc либо возведением в степень до опупения. Но может выстрелить если не хватит точности для возведения в квадрат плюс один (см. последнюю строку). Код: plsql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 20:19 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
Главное, чтобы эту тему не приняли всерьёз современные кодеры. Иначе такое начнётся!!! :-( Впрочем, будет тогда у нас больше простой оплачиваемой работы по оптимизации их кода! :-) * * * Я недавно примерно такое видел: Код: plsql 1. 2. 3. 4. 5. 6.
Как оно вам? Вот такое обычное разве не лучше? Код: plsql 1. 2. 3. 4. 5.
Или Вариант (1) делает какой-то автоматический генератор команд? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 20:51 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
SQL*Plus, В случае внешнего соединения на 10g была бы принципиальная разница выраженная в Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 21:26 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
SQL*Plus Я недавно примерно такое видел: Код: plsql 1. 2. 3. 4. 5. 6.
Как оно вам? Вот такое обычное разве не лучше? Код: plsql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2020, 23:04 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
МистерШоу четыре базовые арифметические: +, -, *, / как вариант Код: plsql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 10:09 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
Misha111, ERROR at line 2: ORA-01476: divisor is equal to zero .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 10:16 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
Stax, у меня с x+0d вместо x+1e-100 не работает проверил на Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 Connected to Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 Код: sql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 13:09 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
Misha111, я о ограничении x <> -1e-100 мож для МистерШоу и не важно ps попробовал с 1d, получил NaN/Inf и бросил .... stax ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2020, 13:50 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
Если разрешить пользоваться степенями, то можно вот так: x+power(0,x) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 14:23 |
|
выражение (только арифметические операции) которое возвращает 1, если x=0, иначе x
|
|||
---|---|---|---|
#18+
Nicolese Если разрешить пользоваться степенями, то можно вот так: x+power(0,x) А кто сказал x > 0 ? SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.05.2020, 16:21 |
|
|
start [/forum/topic.php?fid=52&fpage=46&tid=1881285]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 198ms |
0 / 0 |