如何在SQL中根据列值条件替换TEST表A列的值?
解决方案
针对你的需求,有两种常用的SQL实现方式,都能满足替换A列值的要求:
方法一:CASE语句(逻辑直观,适合新手理解)
如果只是查询替换后的结果,不需要修改原表:
SELECT ID, CASE WHEN B IS NOT NULL THEN B ELSE C END AS A FROM TEST;
如果需要直接更新原表中的A列:
UPDATE TEST SET A = CASE WHEN B IS NOT NULL THEN B ELSE C END;
方法二:COALESCE函数(写法简洁,适配需求场景)
COALESCE函数会返回传入参数中第一个非NULL的值,刚好匹配你的需求:
查询替换结果:
SELECT ID, COALESCE(B, C) AS A FROM TEST;
更新原表A列:
UPDATE TEST SET A = COALESCE(B, C);
说明:两种方法在主流SQL数据库(如MySQL、SQL Server、PostgreSQL等)中都能正常使用,根据你的习惯选择即可。
内容的提问来源于stack exchange,提问作者user22081072
相关产品推荐
相关产品推荐

