用小值替换列中的值

时间:2016-05-18 03:53:17

标签: sql-server sql-server-2008 sql-server-2008-r2

我在客户表中有一个列,其中包含非常大的数字,例如7351267613862.我想用较小的值替换该值。例如,

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

如何使用SQL脚本执行此操作。

注意:此值可能会多次出现在表格中。

1 个答案:

答案 0 :(得分: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()