Sql 用postgres中的唯一整数替换唯一的非整数varchar
我有一个postgres表'labs',有两列col1 varchar,col2 varcharSql 用postgres中的唯一整数替换唯一的非整数varchar,sql,postgresql,casting,Sql,Postgresql,Casting,我有一个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 有人知道一个有效的语句来执行此操作吗?您可以
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
您也可以将其合并到更新中,但不建议这样做,因为当前值是一个字符串,而您想要的结果是一个整数