2014-11-14 11 views
5

Ta kwerenda działa w PostgreSQL:Jak tłumaczyć funkcję array_agg PostgreSQL na 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 

ale to nie działa w SQLite, ponieważ SQLite nie posiada funkcję array_agg(). W jaki sposób można przekształcić to zapytanie w SQLite?

Odpowiedz

5

dla tego zapytania, można użyć group_concat, które bezpośrednio zwraca ciąg znaków:

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

warto wspomnieć, że w przeciwieństwie do funkcji ARRAY_AGG, należy określić klauzulę GROUP_BY dla GROUP_CONTACT, więcej infos: http://stackoverflow.com/questions/22190200/query-using-group-concat-is-returning-only-one-row – younes0

+0

@ younes0 * Wszystkie * funkcje agregujące zwracają pojedynczy wiersz bez GROUP BY; nie ma różnicy między ARRAY_AGG a GROUP_CONCAT. –

+0

Masz rację; Mówiłem o konkretnym postgresie, który pozwala pominąć group_by (jeśli kwerendę w jednej tabeli, myślę) – younes0

Powiązane problemy