如何用SQL将表中new_flat_id列全部填充为非NA值ABC123
SQL实现生成固定值新列的方案
原表包含key_id和flat_id列,flat_id仅存在'ABC123'和'NA'两种取值,需生成新列new_flat_id,使该列所有行值均为'ABC123',以下是几种实现方式:
1. 直接查询生成新列(仅返回结果不修改原表)
如果只是需要查询结果中包含目标列,直接赋值即可,这是最简单的方式:
SELECT key_id, flat_id, 'ABC123' AS new_flat_id FROM your_table_name;
2. 使用CASE逻辑处理(兼容后续扩展)
如果需要保留对flat_id的判断逻辑(比如后续可能新增其他需要替换的取值),可以用CASE WHEN语句:
SELECT key_id, flat_id, CASE WHEN flat_id = 'NA' THEN 'ABC123' ELSE flat_id END AS new_flat_id FROM your_table_name;
3. 修改原表添加并赋值新列
如果需要在原表中永久添加new_flat_id列并赋值,不同数据库的语法示例如下:
MySQL/PostgreSQL
-- 添加新列 ALTER TABLE your_table_name ADD COLUMN new_flat_id VARCHAR(20); -- 给所有行赋值 UPDATE your_table_name SET new_flat_id = 'ABC123';
SQL Server
-- 添加新列 ALTER TABLE your_table_name ADD new_flat_id VARCHAR(20); -- 给所有行赋值 UPDATE your_table_name SET new_flat_id = 'ABC123';
注意:替换上述代码中的
your_table_name为实际的表名,VARCHAR(20)可根据实际数据长度调整。
内容的提问来源于stack exchange,提问作者Sk2415
相关产品推荐
相关产品推荐

