pgsql判断某字段只要有一行数据为1,则整列都为1
时间: 2024-09-19 11:06:42 浏览: 37
ruian2pgsql:将 RÚIAN 数据转换为 PostgreSQL 数据库
在PostgreSQL中,如果你想检查某字段是否在任何一行中有值为1,然后整个字段都被标记为1,你可以使用CASE WHEN语句结合COUNT函数来实现这个逻辑。假设字段名为`status_column`,可以编写如下的查询:
```sql
SELECT
id,
CASE
WHEN COUNT(*) OVER (PARTITION BY id) > 0 THEN 1 ELSE status_column
END AS new_status_column
FROM
your_table;
```
这个查询首先对每个`id`分组(`PARTITION BY id`)计算`status_column`非NULL值的数量。如果该数量大于0,说明存在至少一行`status_column`为1,那么新字段`new_status_column`将为1;如果没有这样的行,保持原`status_column`的值。
请注意,这个查询假设`status_column`的值要么是1,要么是其他非NULL值。如果`status_column`可能是NULL,你可能需要调整条件以处理这种情况。
阅读全文