2015-02-05 68 views
0

唯一的整數獨特的,非整數的varchar我有一個Postgres的表「實驗室」兩列(COL1 VARCHAR,COL2 VARCHAR)。替換Postgres裏

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

您可以在select查詢中使用做到這一點:

select dense_rank() over (order by col1) as col1, col2 

這並不完全按照您想要的結果(這將是1,3,2)。 SQL表格表示無序集合。您的數據沒有足夠的信息將第二個值指定爲「2」而不是「3」。

您也可以將其合併到update中,但不建議這樣做,因爲當前值是一個字符串,並且所需的結果是整數。