You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为数据表新增值依次为one、two、three等序列值的新列

实现方案

关系型数据库的表本身是无序集合,不能直接依赖默认行顺序赋值,你当前表中eid是从1开始连续递增的有序字段,以它为映射依据就能准确得到预期结果,分两步实现:

  • 先给表新增字符串类型的newCol列
  • 按eid值匹配对应的英文序列词填充即可

通用兼容写法(支持MySQL、PostgreSQL、SQL Server等所有主流数据库)

如果你的数据量不大,直接用CASE WHEN手动映射即可,兼容性最好:

-- 1. 新增列,字段长度按需调整,足够存对应英文单词即可
ALTER TABLE 你的表名 ADD COLUMN newCol VARCHAR(20);

-- 2. 按eid映射填充值
UPDATE 你的表名
SET newCol = CASE eid
    WHEN 1 THEN 'one'
    WHEN 2 THEN 'two'
    WHEN 3 THEN 'three'
    WHEN 4 THEN 'four'
    -- 后续有更多行的话,在这里按顺序补充对应映射关系即可
END;

各数据库简化写法

  • PostgreSQL:可以直接用内置格式化函数自动转英文基数词,不用手动枚举
ALTER TABLE 你的表名 ADD COLUMN newCol VARCHAR(20);
UPDATE 你的表名 t SET newCol = to_char(t.eid, 'FMinwords');
  • SQL Server:可以用CHOOSE函数简化映射逻辑
ALTER TABLE 你的表名 ADD newCol VARCHAR(20);
UPDATE 你的表名 SET newCol = CHOOSE(eid, 'one','two','three','four' /* 按需补充后续词汇即可 */);

注意:不要使用不带ORDER BY的行号函数(比如ROW_NUMBER()不加排序)来生成序号赋值,没有明确排序规则的行号可能随数据增删、索引变动发生偏移,用表内已有的稳定有序主键eid做关联是最稳妥的方案。

执行完上述语句后,就能得到预期结果:

eidenamenewCol
1abcone
2deftwo
3ghithree
4jklfour

内容的提问来源于stack exchange,提问作者Sushil Nyayadhish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 03:36:27