powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Аналитические ф-ции в 2.5: чем подменить
8 сообщений из 8, страница 1 из 1
Аналитические ф-ции в 2.5: чем подменить
    #39472069
зеленый админ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет. Чем в fireBird 2.5 принято подменять запрос
Код: plsql
1.
2.
3.
4.
select
  Row_Number() OVER (ORDER BY m.ID)
from
  my_table m
...
Рейтинг: 0 / 0
Аналитические ф-ции в 2.5: чем подменить
    #39472080
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это пронумеровать, что ли?
...
Рейтинг: 0 / 0
Аналитические ф-ции в 2.5: чем подменить
    #39472088
зеленый админ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
делал через self-join. Закрыто
...
Рейтинг: 0 / 0
Аналитические ф-ции в 2.5: чем подменить
    #39472096
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зеленый админ,

нумеровать на клиенте, в ХП или EXECUTE BLOCK. Все остальные варианты довольно плохи по производительности. Есть ещё вариант с контекстными переменными, но там свои приколы.
...
Рейтинг: 0 / 0
Аналитические ф-ции в 2.5: чем подменить
    #39475624
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

есть еще вариант с генератором, аналогично убиванию запросов через генератор

но это если можно гарантировать что под каждый запуск запроса создается уникальный генератор и потом убивается
...
Рейтинг: 0 / 0
Аналитические ф-ции в 2.5: чем подменить
    #39475674
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochкаждый запуск запроса создается уникальный генератор и потом убиваетсяroad to hell.

dataset.recno самое оно в данном случае.
...
Рейтинг: 0 / 0
Аналитические ф-ции в 2.5: чем подменить
    #39475699
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevsky,

там, где оно реализовано в языке и библиотеке доступа, и в доступному пользователю редакторе запросов-отчётов-шаблонов
...
Рейтинг: 0 / 0
Аналитические ф-ции в 2.5: чем подменить
    #39476758
vvvait
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create procedure GET_ROW_NUM(          -- Вывод номера строки
  VAL blob = null,                     -- Пустышка для оптимизатора
  SEQ_NAME varchar(32) = 'RowNumber')  -- Имя последовательности 
returns (
  NUM integer)                         -- Номер
as
begin
  if (RDB$GET_CONTEXT('USER_TRANSACTION', :SEQ_NAME||'.LastSetNum') <> current_timestamp)
     then RDB$SET_CONTEXT('USER_TRANSACTION', :SEQ_NAME, null);
  NUM = coalesce(RDB$GET_CONTEXT('USER_TRANSACTION', :SEQ_NAME), 1);
  RDB$SET_CONTEXT('USER_TRANSACTION', :SEQ_NAME, NUM + 1);
  RDB$SET_CONTEXT('USER_TRANSACTION', :SEQ_NAME||'.LastSetNum', current_timestamp);
  suspend;
end



Код: sql
1.
2.
3.
4.
select n.NUM, RDB$RELATIONS.*
from RDB$RELATIONS
left join GET_ROW_NUM n on 0 = 0
order by RDB$RELATION_NAME
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Аналитические ф-ции в 2.5: чем подменить
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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