1

例如,元素'hi'在哪里,N在哪里3,我需要一个 PostgreSQL 片段,我可以在SELECT返回以下数组的查询中使用:

['hi', 'hi', 'hi']
4

3 回答 3

4

Postgres 提供array_fill了这个目的,例如:

SELECT array_fill('hi'::text, '{3}');
SELECT array_fill('hi'::text, array[3]);

3这两个示例是等效的,但如果您希望用变量替换维度,则第二种形式更方便。

另见:https ://www.postgresql.org/docs/current/functions-array.html

于 2019-10-14T13:12:32.627 回答
1

你可以array_agg使用generate_series

select array_agg(s) from ( values('hi')) as t(s) cross join generate_series(1,3)

通用的

select array_agg(s) from ( values(:elem)) as t(s) cross join generate_series(1,:n)

演示

于 2019-05-24T04:20:55.050 回答
0

sql演示

with cte as (
  select 'hi' as rep_word, generate_series(1, 3) as value
)                                         -- ^^^ n = 3
select array(SELECT rep_word::text from cte);
于 2019-05-24T04:17:58.133 回答