2017-02-05 54 views
1

希望表本身說明問題。從本質上講與左邊的Type列,是否有可能基於該類型的出現訂單增加使用Type一個唯一的編碼/值列作爲哈希鍵/集:使用另一列添加值列作爲鍵

Type | Code 
----------- 
ADA | 1 
ADA | 1 
BIM | 2 
BIM | 2 
CUR | 3 
BIM | 2 
DEQ | 4 
ADA | 1 
... | ... 

我們不能簡單地硬 - 每次有任意數量的Type s時對轉換進行編碼。

+0

因此,無論表中出現多少次,每種類型都必須分配一個唯一值。那是對的嗎? –

+0

@vkp這是正確的! – Rock

回答

2

您可以使用dense_rank()

select type, dense_rank() over (order by type) as code 
from t; 

不過,我勸你最好創建另一個表並使用:

然後,加入在:

select t.type, tt.TypeId 
from t join 
    types tt 
    on t.type = tt.type; 
+0

優雅!奇蹟般有效!再次感謝,戈登! – Rock