Re: generic way to retrieve array as rowset
От | SunWuKung |
---|---|
Тема | Re: generic way to retrieve array as rowset |
Дата | |
Msg-id | MPG.1e248b6ecfb381ae989683@news.postgresql.org обсуждение исходный текст |
Ответ на | generic way to retrieve array as rowset (SunWuKung <Balazs.Klein@axelero.hu>) |
Ответы |
Re: generic way to retrieve array as rowset
|
Список | pgsql-general |
Unfortunately the number of elements in the array is not known beforehand. The dimension of the array is always 1, but the number of elements changes from 50-500. I looked at the article you mention and it creates a set returning function. I found some functions like that in the archive - like select * from explode(array) but I don't see how to join that to the original table the array was in. In article <20060103120223.GC9478@webserv.wug-glas.de>, andreas.kretschmer@schollglas.com says... > am 03.01.2006, um 12:37:51 +0100 mailte SunWuKung folgendes: > > When storing data in an array, like this > > > > id array > > 1, {1,2} > > 2, {10,20} > > 3, {100,200} > > Forever 2 Elements in the array? Then: > > test=# select * from t1; > id | foo > ----+----------- > 1 | {1,2} > 2 | {10,20} > 3 | {100,200} > (3 rows) > > test=# select id, array_upper(foo,1), foo[idx.i] from t1, generate_series (1, 2) idx(i); > id | array_upper | foo > ----+-------------+----- > 1 | 2 | 1 > 1 | 2 | 2 > 2 | 2 | 10 > 2 | 2 | 20 > 3 | 2 | 100 > 3 | 2 | 200 > (6 rows) > > > If not: http://www.varlena.com/GeneralBits/105.php > Read the chapter 'Querying and Flattening Array Columns'. > > > HTH, Andreas >
В списке pgsql-general по дате отправления: