2016-10-21 1 views
0

今後のシーケンス列をIDENTITY列に更新し、現在の行をupdate_time昇順で並べ替える必要があります。sybase - 特定の値で順序付けされたIDである列を更新する

Sybaseでこれを行うにはどうすればよいですか?私が下にあるものの簡略化された例。

現在のテーブル:

SEQUENCE | UPDATE_TIME | DATA 
null  | 2016-01-01 | x 
null  | 2013-01-01 | y 
null  | 2015-01-01 | z 

目的のテーブル:

SEQUENCE | UPDATE_TIME | DATA 
3  | 2016-01-01 | x 
1  | 2013-01-01 | y 
2  | 2015-01-01 | z 

答えて

0

Iは、それ自体の上にテーブルを接合ではなく1つの、追加IDの行にこれをしました。この追加の行は、update_timeを昇順に並べ替えることによってROW_NUMBER関数を使用して作成されます。 a.update_timeにmytableはtmpの からIDとしてINNER JOINをmytableはから何かのような...

UPDATE MYTABLEのSET UPDATE_SEQ = tmp.ID (UPDATE_SEQのASC BY SELECT UPDATE_TIME、データ、ROW_NUMBER()OVER(ORDER) = tmp.update_time およびSybase ASAにa.data = tmp.data

0

あなたはその更新を使用して列を数に入れることができます。

update [table_name] 
set [SEQUENCE]=number(*) 
order by [UPDATE_TIME] 
関連する問題