Array of Int: Увеличить значение каждого элемента на X - PullRequest
0 голосов
/ 20 февраля 2020

Предположим, у меня есть следующая таблица

a |b
--|--
1 |{1,2,3}
2 |{1,2,3}
3 |{1,2,3}

Столбец B - это массив целых чисел. Используя SQL, я хотел бы обновить столбец B и увеличить каждый элемент массива на значение 3. Желаемый конечный результат будет выглядеть как

a |b
--|--
1 |{4,5,6}
2 |{4,5,6}
3 |{4,5,6}

Я не уверен, как это сделать sh это.

TIA!

1 Ответ

0 голосов
/ 24 февраля 2020

Предполагая, что вы на postGreSQL, вы можете сделать что-то вроде этого:

удалить таблицу, если существует arrayz; создать таблицу arrayz (a int, b int []); вставить в значения arrayz (1, '{1,2,3}' :: int []), (2, '{1,2,3}' :: int []), (3, '{1,2 , 3} ':: int []);

выберите массив a (выберите bvalue + 1 из unnest (arr.b) в качестве bvalue, где a = arr.a) из массиваz arr;

...