我有一个postgres表'labs',它有两列(col1-varchar,col2-varchar)。
col1 | col2
1.2.3 | a
1.2.3 | b
3.4.4 | c
3.4.4 | d
2.6.9 | e
2.6.9 | f
我想用像这个这样的整数代替col1
col1 | col2
1 | a
1 | b
2 | c
2 | d
3 | e
3 | f
有人知道一个有效的声明来做到这一点吗?
您可以在select
查询中使用:
select dense_rank() over (order by col1) as col1, col2
这并不能产生你想要的结果(可能是1、3、2)。SQL表表示无序的集合。您的数据没有足够的信息来为第二个值指定值"2"而不是"3"。
您也可以将其合并到update
中,但不建议这样做,因为当前值是一个字符串,而您想要的结果是一个整数。