|
|
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
stelvicДа хоть и курсор. Почему переменные должны зависеть от курсора? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 12:06 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
не путать мухи и котлеты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 12:12 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
DimanoТоже должно менятся на каждую итерацию? Да. Точно так же как и Код: plaintext 1. 2. 3. 4. 5. 6. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 12:25 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
Dimano stelvicДа хоть и курсор. Почему переменные должны зависеть от курсора? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 12:29 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov DimanoТоже должно менятся на каждую итерацию? Да. Точно так же как и Код: plaintext 1. 2. 3. 4. 5. 6. на самом деле, не должно. Но ты прав в том, что хрен это исправишь малой кровью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 13:14 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
авторна самом деле, не должно. Странно, почему? а в этой конструкции тоже не должно? Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 13:43 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
уточню свои слова выше. Переменная меняться должна, т.е. INTO ей будет присваивать каждый раз новое значение. Но влиять на результат селекта переменная не должна. Т.е. селект должен работать с ее копией на момент начала выполнения запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 13:48 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
dimitr Вот они золотые слова... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 13:52 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
ну насколько я понимаю в конструкции Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 14:03 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
щас проверил, похоже, неправильно я понимал. Таблица: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 14:16 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
Ошибочка в предыдущем посте. таблица: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 14:18 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
Короче, с функцией между select и into изменения на лету происходят, а с нормальными проверками нет, так что ли? А с какими функциями -- любыми, или только с сабжевой новомодной заменой case? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 14:20 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
chAlxКороче, с функцией между select и into изменения на лету происходят, а с нормальными проверками нет, так что ли? А с какими функциями -- любыми, или только с сабжевой новомодной заменой case?Что-то не понял я вопроса. В примерах автора изменения с переменной происходят в начале каждой итерации. Конструкция into присваивает ей новое значение, зависящее от того, что лежит в поле таблицы и от предыдущего значения переменной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 14:29 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
Поэкспереминтировал поразному, выдаёт также как и в первом случае. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 14:49 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
stelvic chAlxКороче, с функцией между select и into изменения на лету происходят, а с нормальными проверками нет, так что ли? А с какими функциями -- любыми, или только с сабжевой новомодной заменой case?Что-то не понял я вопроса. В примерах автора изменения с переменной происходят в начале каждой итерации. Конструкция into присваивает ей новое значение, зависящее от того, что лежит в поле таблицы и от предыдущего значения переменной. Примеры с функцией coalesce() показывают, что в ней переменная [ошибочно] пересчитывается. Примеры без функции (select id where id > :idmax into :idmax) покажут, что она [традиционно] не пересчитывается. Вопрос в том, где граница у этого поведения: любая ли функция приводит к такому эффекту, или только сабжевая, или вообще не в ней дело.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 15:04 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
Dimano Код: plaintext Вот ведь, а я думал съязвил... Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 15:11 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
Игры с сортировкой помогают. Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Код: plaintext 1. 2. 3. 4. 5. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 15:31 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
chAlx Примеры с функцией coalesce() показывают, что в ней переменная [ошибочно] пересчитывается. Примеры без функции (select id where id > :idmax into :idmax) покажут, что она [традиционно] не пересчитывается. Вопрос в том, где граница у этого поведения: любая ли функция приводит к такому эффекту, или только сабжевая, или вообще не в ней дело.. я бы поспорил с ошибочностью этого поведения, думаю кто использует таким образом переменную (первый вариант) прекрасно понимает к чему это может привести, в противном случае использовал бы либо константу либо завел копию. Это чтоб не писать лишнего кода между BEGIN--END, я так понимаю: Код: plaintext 1. Код: plaintext 1. 2. 3. 4. хотя зачем такое может понадобиться я хз ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.08.2008, 15:47 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
dimitrуточню свои слова выше. Переменная меняться должна, т.е. INTO ей будет присваивать каждый раз новое значение. Но влиять на результат селекта переменная не должна. Т.е. селект должен работать с ее копией на момент начала выполнения запроса. В тройке теперь именно так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2014, 01:59 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
__Avenger__В тройке теперь именно так? проверь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2014, 09:28 |
|
||
|
for select и coalesce
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Glokмогут и исправить. Не могут. Слишком многие приложения тогда рассыплются. Представь, что перестанет работать такое: Код: sql 1. Точнее не перестанет, а начнёт выдавать константу. А ведь это широко разрекламированный способ прерывания длинных выборок. В оракле так ( и не только для генераторов, но и для функций (выборки из коллекции) при использовании connect by и level в качестве параметра ), а вообще на мой взгляд FB ведёт себя правильно, разве стабильность курсора имеет отношение к переменным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2014, 00:28 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=35484932&tid=1563153]: |
0ms |
get settings: |
12ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
200ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
77ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 570ms |

| 0 / 0 |
