2014-11-14 65 views
5

該查詢工作在PostgreSQL的:如何將PostgreSQL array_agg函數轉換爲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 

,但它不能在SQLite的工作,因爲SQLite沒有的array_agg()功能。如何將此查詢轉換爲SQLite?

回答

5

對於此查詢,您可以使用group_concat,直接返回一個字符串:

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

這是值得一提的是不像ARRAY_AGG功能,你必須指定GROUP_CONTACT的GROUP_BY條款,更多的相關信息:HTTP:/ /stackoverflow.com/questions/22190200/query-using-group-concat-is-returning-only-one-row – younes0

+0

@ younes0 *所有*聚合函數返回沒有GROUP BY的單行; ARRAY_AGG和GROUP_CONCAT之間沒有區別。 –

+0

你是對的;我在討論特定的postgres,它允許省略group_by(如果你在一個表中查詢,我猜) – younes0