2017-04-07 48 views
0

聚合函数我有一个表的订单:替代列出火鸟

select * Orders order by 2 

Ordernumber  Zone 
12345   1 
12345   2 
12345   3 

哪些SQL将产生下面的输出?

Ordernumber  Zone 
12345   123 

不幸的是,LIST无法使用,因为这是一个旧的Firebird 1.5xxx。 有没有其他的可能性?

+1

的唯一真正的选择是升级到新版本。除此之外,您可以编写一个可选择的存储过程,以此程序执行此操作。 –

回答

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)