Альтернатива агрегатной функции LIST в Firebird

У меня есть таблица заказов:

select * Orders order by 2

Ordernumber     Zone
12345           1
12345           2
12345           3

Какой sql выдаст следующий вывод?

Ordernumber     Zone
12345           123

К сожалению, LIST не может быть использован, так как это старый Firebird 1.5xxx. Есть ли другие возможности?

1 ответ

CREATE PROCEDURE GET_ZONER(ordernumber  Integer)
returns (zoner varchar(20))
AS
declare variable zone varchar(20) ;
Begin
  zoner = '';
  for 
  select distinct zone from orders 
  where ordernumber = :ordernumber order by zone into :zone  do
  begin
     zoner  =  zoner || :zone;
  end
  SUSPEND;
End

а затем использовать

select * from getzoner(1234)
Другие вопросы по тегам