2016-05-18 84 views
-3

我在客戶表中有一列包含非常大的數字,例如7351267613862.我想用小的值替換該值。例如,用小數值替換列中的值

7351267613862 => 1 
7371867613863 => 2 
7351267993855 => 3 

如何通過使用SQL腳本來做到這一點。

注意:該值可能會出現在表格中很多次。

+0

您可以使用ROW_NUMBER,HTTPS ://msdn.microsoft.com/en-IN/library/ms186734.aspx –

回答

0

取決於你想怎麼少數喜歡,反正ROW_NUMBER()應該做的伎倆

UPDATE D 
SET very_tall_number = small_value 
FROM 
(
    SELECT *, small_value = dense_rank() over (order by very_tall_number) 
    FROM yourtable 
) as D 

編輯:從ROW_NUMBER))變化(以DENSE_RANK(

+0

這些值是唯一的,如客戶ID,但在表中出現多次。 –

+0

這是row_number()可以工作沒有麻煩或衝突? –

+0

所以你想'small_value'由客戶運行?對於每個「客戶」從1開始? – Squirrel