数据库A,列名:aa为操作任务,列名bb为操作步骤, 用PGsql查看“操作任务”相同的“操作步骤”,检索关键字为“11刀闸”或“12刀闸”, 若操作任务为“转冷备用”、“转热备用”、“转检修”,并且备注列AC项没有"转供"关键字,则应新建“措施”列并填写“先拉开12刀闸”, 若有“转供”关键字,则应在“措施”列中填写“先拉开11刀闸” 若操作任务为“转运行”,并且备注AC列没有“转供”关键字,则应在“措施”列中填写“先合上11刀闸”, 若有“转供”关键字,则应在“措施”列中填写“先合上12刀闸”。
时间: 2023-10-03 10:05:30 浏览: 70
这是一个SQL查询任务,可以使用如下的语句来实现:
```
UPDATE 数据库A
SET 措施 = CASE
WHEN aa IN ('转冷备用', '转热备用', '转检修') AND AC NOT LIKE '%转供%' THEN '先拉开12刀闸'
WHEN aa IN ('转冷备用', '转热备用', '转检修') AND AC LIKE '%转供%' THEN '先拉开11刀闸'
WHEN aa = '转运行' AND AC NOT LIKE '%转供%' THEN '先合上11刀闸'
WHEN aa = '转运行' AND AC LIKE '%转供%' THEN '先合上12刀闸'
ELSE 措施
END
WHERE bb LIKE '%11刀闸%' OR bb LIKE '%12刀闸%';
```
这个SQL语句的意思是,对于数据库A中的每一行数据,如果它的“操作步骤”列中包含关键字“11刀闸”或“12刀闸”,则根据“操作任务”列和“备注”列的内容来决定在“措施”列中填写什么内容。具体规则如下:
- 如果“操作任务”是“转冷备用”、“转热备用”、“转检修”,并且备注列AC项没有"转供"关键字,则在“措施”列中填写“先拉开12刀闸”;
- 如果“操作任务”是“转冷备用”、“转热备用”、“转检修”,并且备注列AC项有"转供"关键字,则在“措施”列中填写“先拉开11刀闸”;
- 如果“操作任务”是“转运行”,并且备注列AC项没有"转供"关键字,则在“措施”列中填写“先合上11刀闸”;
- 如果“操作任务”是“转运行”,并且备注列AC项有"转供"关键字,则在“措施”列中填写“先合上12刀闸”;
- 如果“措施”列已经有值,则不做修改。
这个SQL语句使用了UPDATE和SET语句来更新“措施”列的值,使用了CASE语句来根据不同的条件来决定填写的内容,使用了WHERE语句来筛选符合条件的行。
阅读全文