PostgreSQL查询中如何通过多条件判断根据币种生成国家字段
完整PostgreSQL查询实现
直接参考以下写法,替换实际表名即可:
SELECT -- 可自行指定需要查询的原表字段,比如 odr.id, odr.order_no 等 odr.*, CASE WHEN odr."foreignCurrency" = 'INR' THEN 'india' WHEN odr."foreignCurrency" = 'Ringgit' THEN 'Malaysia' -- 新增其他币种对应关系直接补加WHEN子句即可 ELSE 'unknown' -- 可选配置:未匹配到对应币种时的默认值,不加则未匹配行的country字段为NULL END AS "country" FROM 你的实际表名 odr;
关键注意点
- PostgreSQL中字符串字面量必须用单引号包裹,你原有代码片段用双引号包裹
INR、india等值会被数据库识别为字段名,触发字段不存在的报错,这是核心错误点 - 该写法无需修改原表结构,
country为查询时动态生成的计算列,仅会在查询结果中展示,完全符合你的需求 - 如果后续币种对应关系超过10个,更推荐单独新建一张币种-国家映射表,通过JOIN关联查询,比堆叠CASE子句更易维护
内容的提问来源于stack exchange,提问作者noob_developer
相关产品推荐
相关产品推荐

