2
我有一個包含現有數據的表。對於此表第一列中的每個唯一值,我們都有一個應該按順序排列的列,但此表已經失序。我想運行一條SQL語句,將第二列重新排列。我能看到我想要的結果與此SQL:使用Rank()函數更新SQL列
select FORMULA_ID, ATTRIB_CODE, ATTRIB_VAL, ATTRIB_ORDER,
rank() over (partition by formula_id order by attrib_code, attrib_val) AS WANT_THIS
from ATTRIB
其中產量:
FORMULA_ID ATTRIB_CODE ATTRIB_VAL ATTRIB_ORDER WANT_THIS
----------- -------------------- ---------------- ------------ ---------
2791 C_BRAND ROMAN HOLIDAY 3 1
2791 C_ENDUSE DINNER 4 2
2791 C_ENDUSE SNACK 6 3
2791 C_ENDUSER 10-17 7 4
2791 C_PRODTYPE SALAD 13 5
2791 C_RELIG ANY 14 6
2821 C_ALLERGEN PEANUT 1 1
2821 C_ALLERGEN SOY 2 2
2821 C_BRAND ROMAN HOLIDAY 1 3
2821 C_ENDUSE DINNER 1 4
正如你所看到的,WANT_THIS列訂單行和重置爲1時,得到的新的FORMULA_ID。但是我不知道如何將其轉換爲UPDATE語句,該語句實際上將WANT_THIS中的值放入列ATTRIB_ORDER中。有沒有辦法將上面的SQL轉換成UPDATE語句?