Size aradığınızı olmayabilir, ama böyle yapılar ile geçmişte iyi yaşamadık:
SELECT MAX(DECODE(fookey, 1, foo, NULL))
|| MAX(DECODE(fookey, 2, foo, NULL))
|| MAX(DECODE(fookey, 3, foo, NULL))
|| MAX(DECODE(fookey, 4, foo, NULL))
, groupingvalue
FROM mytable
GROUP BY groupingvalue;
Bu platform bağımsız olduğunu ve iyi zaman sizi çalışır foo için keyfi, ancak sınırlı sayıda değerlere sahipler ve diğer bazı anahtar değerlere dayanıyorlar.Örneğin, bir fatura tablonuz varsa ve faturadaki tek satırdaki tüm satır zamanlarını tek bir satırda görmek istiyorsanız, birleştirilmiş ve 5 satırlık bir üst sınırınız varsa, şu şekilde görünecektir:
SELECT MAX(DECODE(lineno, 1, foo, NULL))
|| ', '
|| MAX(DECODE(lineno, 2, foo, NULL))
|| ', '
|| MAX(DECODE(lineno, 3, foo, NULL))
|| ', '
|| MAX(DECODE(lineno, 4, foo, NULL))
|| ', '
|| MAX(DECODE(lineno, 5, foo, NULL))
, invoiceid
FROM lineitem
GROUP BY invoiceid;
kullandığınız sunucu? Bunu yapmak için genel bir SQL yolu olduğundan şüphe duyuyorum ama kesinlikle uygulamaya özel yöntemler var. –
Oracle kullanıyorum. Bunu kehanette yapmak için kolay bir yol olmadığından şaşıyorum. – paweloque