SQL 使用 row_number() 加上 concat 更新
SQL Update with row_number() plus concat
我根据另一个列的值添加了一个新列。我想用正确的值加上一个按元素分组的增量数字来更新那个新列。
例如:
city
new_colum
Madrid
Madrid
Madrid
Madrid-2
Madrid
Madrid-3
Sevilla
Sevilla
Sevilla
Sevilla-2
Sevilla
Sevilla-3
Sevilla
Sevilla-4
Alicante
Alicante
我尝试了以下代码,但总是出现语法错误。
UPDATE cities as c
SET c.new_colum = concat(t.city,'-', t.col)
FROM (SELECT ROW_NUMBER() OVER(partition by city) AS col, city_st FROM cities) t;
假设你已经添加了 'newcolumn' 到 cities 并且在 cities 中有一个名为 'id' 的主键然后:
UPDATE cities c
JOIN
(SELECT id,
ROW_NUMBER() OVER(partition by city ) newcolumn
FROM cities) t on c.id=t.id
SET c.newcolumn = CONCAT(city,'-',t.newcolumn)
;
db-fiddle:
我根据另一个列的值添加了一个新列。我想用正确的值加上一个按元素分组的增量数字来更新那个新列。 例如:
city | new_colum |
---|---|
Madrid | Madrid |
Madrid | Madrid-2 |
Madrid | Madrid-3 |
Sevilla | Sevilla |
Sevilla | Sevilla-2 |
Sevilla | Sevilla-3 |
Sevilla | Sevilla-4 |
Alicante | Alicante |
我尝试了以下代码,但总是出现语法错误。
UPDATE cities as c
SET c.new_colum = concat(t.city,'-', t.col)
FROM (SELECT ROW_NUMBER() OVER(partition by city) AS col, city_st FROM cities) t;
假设你已经添加了 'newcolumn' 到 cities 并且在 cities 中有一个名为 'id' 的主键然后:
UPDATE cities c
JOIN
(SELECT id,
ROW_NUMBER() OVER(partition by city ) newcolumn
FROM cities) t on c.id=t.id
SET c.newcolumn = CONCAT(city,'-',t.newcolumn)
;
db-fiddle: