У меня есть таблица, к которой я добавил код цвета varchar.Обновить столбец таблицы на основе массива varchar в PostgreSQL
В таблице уже много строк. состояние таблицы после добавления колонки ColorCode является
id name location colorcode
121 Royal Challengers Bangalore
122 Sun Risers Hyderabad
123 Dare Devils Delhi
124 Gujrat Lions Ahmadabad
У меня есть массив цветовых кодов
["#FF8484", "#FF82A9", "#FA82FF", "#C682FF", "#8782FF"]
Для каждой строки в таблице я должен обновить столбец ColorCode путем сопоставления индекса массива с (row_number () - 1).
Я применил список значений при использовании предложения «in».
пример:
select * from table where id in(1,2,3,4) etc
здесь 1,2,3,4 нет ничего, кроме массива
Я хочу, чтобы обновить столбец ColorCode на подобных линий, но я не знаю, как получить доступ к элементы моего массива, основанные на индексе.
после запуска оператор обновления мой ожидается выход
id name location colorcode
121 Royal Challengers Bangalore #FF8484
122 Sun Risers Hyderabad #FF82A9
123 Dare Devils Delhi #FA82FF
124 Gujrat Lions Ahmedabad #C682FF
можно сортировать результат на основе идентификатора, т.е., первичный ключ
. Примечание: Я использую Postgres
Каков ожидаемый результат обновления? Зачем вам нужно ссылаться на предыдущую строку? И как определяется «предыдущий»? На каком атрибуте вы можете сортировать строки? [edit] ваш вопрос и добавьте некоторые примеры данных и ожидаемый результат (текст _формат, пожалуйста, [без скриншотов] (http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images -of-code-on-so-when-ask-a-question/285557 # 285557)) –
Я отредактировал вопрос и добавил ожидаемый результат обновления. Мне не нужно ссылаться на предыдущую строку. Row_number() - 1 должен убедиться, что цветовой код соответствует индексу массива row_number() равен 1, и индексы массива основаны на 0 (я думаю), поэтому, чтобы компенсировать это, я делаю row_number() -1. Вы можете сортировать строки на основе id – curiosa