2014-11-14 15 views
5

Diese Abfrage funktioniert in PostgreSQL:Wie übersetzt man die PostgreSQL array_agg Funktion zu SQLite?

Select ot.MCode,array_to_string(array_agg(tk1.TName || ',' || ot.TTime), ' - ') as oujyu_name_list 
    From TR_A ot 
    inner join MS_B tk1 on ot.Code = tk1.Code 
    Where ot.Code in (Select Code From TR_C) 
    Group byot.MCode 

aber in SQLite nicht funktioniert, weil SQLite die array_agg() Funktion nicht haben. Wie kann diese Abfrage in SQLite konvertiert werden?

Antwort

5

Für diese Abfrage können Sie group_concat verwenden, die direkt einen String zurückgibt:

SELECT ..., group_concat(tk1.TName || ',' || ot.TTime, ' - ') 
FROM ... 
+0

es lohnt sich im Gegensatz zu den ARRAY_AGG Funktion zu erwähnen, dass Sie die GROUP_BY Klausel für GROUP_CONTACT, mehr Infos angeben muss: http://stackoverflow.com/questions/22190200/query-using-group-concat-is-returning-only-one-row – younes0

+0

@ yunes0 * Alle * Aggregatfunktionen geben eine einzelne Zeile ohne GROUP BY zurück; Es gibt keinen Unterschied zwischen ARRAY_AGG und GROUP_CONCAT. –

+0

Sie haben Recht; Ich habe über den speziellen Fall postgres gesprochen, der es erlaubt, die group_by wegzulassen (wenn Sie in einer Tabelle abfragen, denke ich) – younes0

Verwandte Themen