Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 用postgres中的唯一整数替换唯一的非整数varchar_Sql_Postgresql_Casting - Fatal编程技术网

Sql 用postgres中的唯一整数替换唯一的非整数varchar

Sql 用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 有人知道一个有效的语句来执行此操作吗?您可以

我有一个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

您也可以将其合并到更新中,但不建议这样做,因为当前值是一个字符串,而您想要的结果是一个整数