天天看點

SQL排序後将序号填入指定字段

1、顯示行号

    如果資料沒有删除的情況下主鍵與行号是一緻的,但在删除某些資料,行号就與主鍵不一緻了,這時需要查詢行号就需要用新的方法,在SQL Server2005之前,需要使用臨時表,但在SQL Server2005中,使用ROW_NUMBER()非常友善。

以下是一個查詢語句,意思是按照cid将資料排序,然後将排序後的序号填入建立的字段rowNum。

select row_number() over (order by cid) as rowNum,* from t_gene      

查詢結果:

SQL排序後将序号填入指定字段

2.運用

    以下是本文需要達到的目的,即排序後,将排序後的序号更新到指定字段。

with ts as(
select row_number() over (order by clccode) as rn,* from t_gene
)
update ts
set  cdkxh=rn      

運作結果:

    未排序前。此時可以看到字段cdkxh大小參差不齊

select * from t_gene      
SQL排序後将序号填入指定字段

    排序後,将臨時字段rn的序号更新到字段cdkxh