2016-05-18 14 views
-3

Ich habe eine Spalte in einer Tabelle von Kunden, die sehr große Zahlen wie diese 7351267613862 enthält. Ich möchte den Wert durch einen kleinen Wert ersetzen. Zum BeispielErsetzen Sie den Wert in der Spalte mit kleinen Wert

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

Wie kann ich dies mithilfe von SQL-Skript tun.

Hinweis: Dieser Wert könnte viele Male in der Tabelle erscheinen.

+0

Sie ROW_NUMBER verwenden können, https : //msdn.microsoft.com/en-IN/library/ms186734.aspx –

Antwort

0

hängt davon ab, wie Sie die kleine Zahl wollen wie, wie auch immer, row_number() sollte

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

EDIT den Trick: Wechsel von row_number() DENSE_RANK()

+0

Diese Werte sind eindeutig wie die Kundennummer, erscheinen jedoch mehrmals in der Tabelle. –

+0

ist das row_number() könnte ohne Probleme funktionieren oder Konflikte machen? –

+0

Sie möchten also den 'small_value' vom Kunden ausführen lassen? Für jeden "Kunden" beginnt von 1? – Squirrel

Verwandte Themen