Postgresql Postgres-将一个元素作为数组重复N次

Postgresql Postgres-将一个元素作为数组重复N次,postgresql,postgres-9.6,Postgresql,Postgres 9.6,例如,如果元素是'hi',而N是3,我需要一个PostgreSQL代码段,可以在返回以下数组的SELECT查询中使用: ['hi', 'hi', 'hi'] with cte as ( select 'hi' as rep_word, generate_series(1, 3) as value ) -- ^^^ n = 3 select array(SELECT rep_word::text from ct

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

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

with cte as (
  select 'hi' as rep_word, generate_series(1, 3) as value
)                                         -- ^^^ n = 3
select array(SELECT rep_word::text from cte);

with cte as (
  select 'hi' as rep_word, generate_series(1, 3) as value
)                                         -- ^^^ n = 3
select array(SELECT rep_word::text from cte);

您可以将
array\u agg
generate\u 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)

您可以将
数组\u agg
生成\u序列一起使用

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)

Postgres为此提供了
数组填充
,例如:

SELECT array_fill('hi'::text, '{3}');
SELECT array_fill('hi'::text, array[3]);
这两个示例是等效的,但如果希望用变量替换维度
3
,则第二种形式更方便


另请参见:

Postgres为此提供了
数组填充
,例如:

SELECT array_fill('hi'::text, '{3}');
SELECT array_fill('hi'::text, array[3]);
这两个示例是等效的,但如果希望用变量替换维度
3
,则第二种形式更方便


另请参见:

您可以将其简化一点:
从generate_series(1,3)中选择array_agg('hi'::text)
您可以将其简化一点:
从generate_series(1,3)中选择array_agg('hi'::text)