|
plpgsql - как запомнить значение из пред. строки?
|
|||
---|---|---|---|
#18+
подскажите пожалуйста, когда идёт перебор строк и мне надо из предыдущей строки значение из колонки col1 использовать в текущей строке и сравнить его с чем-то, манипуляции с ним поделать... это через lag() только делается и повторным прогоном через WITH (или двумя), или таки можно как-то запомнить в переменную и поюзать на след. строчке в этом же потоке? Это в любом языке можно сделать изи. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2020, 19:59 |
|
plpgsql - как запомнить значение из пред. строки?
|
|||
---|---|---|---|
#18+
Алексей Роза, обрабатывайте в цикле for... easy Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
для особых запущенных случаев - читаем про RETURN NEXT ... not easy ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2020, 22:06 |
|
plpgsql - как запомнить значение из пред. строки?
|
|||
---|---|---|---|
#18+
о, спасибки никогда его так не использовал, хоть и читал про это: автор42.6.4. Цикл по результатам запроса Другой вариант FOR позволяет организовать цикл по результатам запроса. Синтаксис: [ <<метка>> ] FOR цель IN запрос LOOP операторы END LOOP [ метка ]; Переменная "цель" может быть строковой переменной, переменной типа record или разделённым запятыми списком скалярных переменных. Переменной "цель" последовательно присваиваются строки результата запроса, и для каждой строки выполняется тело цикла. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.07.2020, 22:14 |
|
plpgsql - как запомнить значение из пред. строки?
|
|||
---|---|---|---|
#18+
а как, например, быть в случае, если внутри SELECT есть такое: Код: sql 1.
а потом этот же extract(DOW ...) встречается уже внутри LOOP его придётся считать 2 раза для каждой строчки? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.07.2020, 00:26 |
|
plpgsql - как запомнить значение из пред. строки?
|
|||
---|---|---|---|
#18+
можно как-то получаемые строки собрать в некий record прямо в этой ф-и, чтобы потом разом их в INSERT вставить? или надо отдельную ф-ю с return setof record ? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 01:03 |
|
plpgsql - как запомнить значение из пред. строки?
|
|||
---|---|---|---|
#18+
Алексей Роза, да, можно. Создаете составной тип объявляете переменную с типом массив из строк вашего типа. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
22.07.2020, 19:54 |
|
plpgsql - как запомнить значение из пред. строки?
|
|||
---|---|---|---|
#18+
Swa111, благодарю у вас complex complex и nCount нигде не участвуют... Они зачем? И зачем сделаны с одинаковыми названиями: complex[] И complex complex ? И ещё важный вопрос: я подозреваю, что с т.з. производительности выгоднее будет всё таки ф-ей отдавать setof ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 00:13 |
|
plpgsql - как запомнить значение из пред. строки?
|
|||
---|---|---|---|
#18+
Алексей Роза, complex complex; и nCount integer := 0; - было лишним хотел по другому записать добавление в массив через индексную переменную (в стиле Oracle), но вспомнил про функцию array_append. complex[] - это массив complex - это элемент массива (одна строчка) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2020, 20:40 |
|
plpgsql - как запомнить значение из пред. строки?
|
|||
---|---|---|---|
#18+
не хочет Код: sql 1.
делал так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2020, 23:28 |
|
|
start [/forum/topic.php?fid=53&tid=1994559]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
23ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 154ms |
0 / 0 |