希望表格本身说明问题所在。基本上左侧的Type
列,是否可以使用Type
作为基于类型的外观顺序的散列键/集添加唯一的代码/值列:
Type | Code
-----------
ADA | 1
ADA | 1
BIM | 2
BIM | 2
CUR | 3
BIM | 2
DEQ | 4
ADA | 1
... | ...
我们无法在每次Type
s的任意数量时对转换进行硬编码。
答案 0 :(得分:2)
您可以使用dense_rank()
:
select type, dense_rank() over (order by type) as code
from t;
但是,我建议你创建另一个表并使用它:
create table Types as (
select row_number() over (order by type) as TypeId,
type
from t
group by type;
然后,加入:
select t.type, tt.TypeId
from t join
types tt
on t.type = tt.type;