2017-04-07 47 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)