在 SQL 中,我如何将一个数字乘以一个数组

In SQL, how can I multiple a number by an array

基本上,我有一个数组,我需要将一个数字乘以每个元素,例如:

x float[1,2,3,4,5];
x := x * 10; --of course I get the error here

所以输出将是: {10,20,30,40,50}

您可以使用 unnest -> 进行计算 -> array_agg:

SELECT array_agg(unnest * 10)  FROM UNNEST('{1,2,3,4,5}' :: int[])

DBFiddle Demo


要确定元素的顺序,您可以添加 WITH ORDINALITY:

SELECT array_agg(unnest * 10 ORDER BY ordinality) 
FROM UNNEST('{1,2,3,4,5}' :: int[] )WITH ORDINALITY