我有一個表,我添加了一列varchar colorcode。在PostgreSQL中基於varchar數組的表的更新列
該表已經有很多行。加入的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"]
對於表中的每一行我必須由具有(ROW_NUMBER匹配陣列的索引更新的ColorCode列陣列( ) - 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
我可以根據ID即排序結果,主鍵
注:我使用的是Postgres
更新的預期結果是什麼?爲什麼你需要參考前一行?以及「以前」是如何定義的?您可以對哪些屬性進行排序? [編輯]你的問題,並添加一些示例數據和預期的結果(_formatted_文本請[,無屏幕截圖](http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images代碼的時候提出問題/ 285557#285557)) –
我編輯了這個問題並添加了更新的預期結果。我不需要參考前一行。 row_number() - 1是爲了確保顏色代碼對應於數組索引row_number()是基於1的,而數組索引是基於0(我認爲),以彌補我正在做的row_number()-1。您可以根據ID – curiosa