我有一个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
有人知道这样做的有效声明吗?
答案 0 :(得分:0)
您可以使用以下方式在select
查询中执行此操作:
select dense_rank() over (order by col1) as col1, col2
这不会产生您想要的结果(它将是1,3,2)。 SQL表表示无序集。您的数据没有足够的信息来为第二个值分配值“2”而不是“3”。
您也可以将其合并到update
中,但不建议这样做,因为当前值是一个字符串,您想要的结果是整数。