我在PostgreSQL中有此数据

Id   type      quantity
1    order       10
2    order       12
3    order       11
4    purchase    5
5    purchase    4
6    credit      2

当type=‘Order’或‘Credit’时,我想退货数量为负数

Id   type      quantity
1    order       -10
2    order       -12
3    order       -11
4    purchase     5
5    purchase     4
6    credit      -2

我如何在PostgreSQL中做到这一点?

推荐答案

您可以使用CASE语句来完成此操作

select Id,type,case when type in ('order','credit') then quantity*-1 else quantity end as quantity 
  from tableName

如果数量已经是负值,则必须添加另一个CASE语句.

Postgresql相关问答推荐

如何将Postgs SUM结果存储在多个变量中?

即使密码更改,也可以访问Docker Postgresql数据库

supabase 中的交易

为什么我的唯一索引在 Postgresql 中不起作用?

如何使用 go-pg 包删除所有记录

ST_Intersects 太慢

带有附加组的时间刻度 interpolated_average

postgres 如何计算多列哈希?

如何包装 record_out() 函数?

PostgreSQL 中基于时间戳的移动平均线

使用 ON CONFLICT 从 INSERT 返回行,无需更新

从 sql 查询 postgres 9.4 创建嵌套 json

如何从 WSL 连接到 windows postgres 数据库

查询仅属于特定部门的用户

将 SELECT 结果作为参数传递给 postgreSQL 函数

如何在 psql 控制台中打印当前工作目录?

Postgres 日期重叠约束

是否可以在 CSV 格式的 Postgres COPY 命令中关闭报价处理?

PostgreSQL 条件 where 子句

判断 PostgreSQL 中的角色是否设置了密码