如何在Oracle SQL中根据同表Column A值填充Column B?
Oracle SQL按条件填充列值的实现方法
有两种常见的实现方式,可根据需求选择:
1. 仅查询展示结果(不修改原表)
如果只是想在查询时看到填充后的Column B数据,无需改动原表,用CASE表达式即可:
SELECT "Column A", CASE WHEN "Column A" > 100 THEN 'high number' ELSE 'low number' END AS "Column B" FROM your_table_name;
替换your_table_name为你的实际表名。CASE表达式会逐行判断Column A的值,大于100则返回high number,否则返回low number,作为查询结果里的Column B。
2. 直接更新原表的Column B
如果需要把填充后的值永久存入表的Column B中,用UPDATE语句结合CASE表达式:
UPDATE your_table_name SET "Column B" = CASE WHEN "Column A" > 100 THEN 'high number' ELSE 'low number' END; -- 若会话未开启自动提交,执行此语句提交更改 COMMIT;
执行这条语句后,表中所有行的Column B都会被填充为符合规则的值,记得执行COMMIT确认修改(若你的Oracle环境不是自动提交模式)。
注意:如果列名没有空格,可以不用双引号包裹,直接写
ColumnA这类名称即可。
内容的提问来源于stack exchange,提问作者Jessy
相关产品推荐
相关产品推荐

