数据库A,列名:aa为操作任务,列名bb为操作步骤, 用PGsql查看同一“操作任务”的“操作步骤”,检索关键字为“11刀闸、12刀闸”, 若操作任务为“转冷备用”、“转热备用”、“转检修”,并且备注列AC项没有"转供"关键字,则应先拉开“12刀闸”, 若有“转供”关键字,则应先拉开“11刀闸” 若操作任务为“转运行”,并且备注AC列没有“转供”关键字,则应先合上“11刀闸”, 若有“转供”关键字,则应先合上“12刀闸”
时间: 2023-10-04 09:03:19 浏览: 57
您可以使用如下的PGsql语句来实现您的需求:
```
SELECT bb FROM 数据库A
WHERE aa = '转冷备用' OR aa = '转热备用' OR aa = '转检修'
AND AC NOT LIKE '%转供%'
AND bb LIKE '%12刀闸%'
UNION
SELECT bb FROM 数据库A
WHERE aa = '转冷备用' OR aa = '转热备用' OR aa = '转检修'
AND AC LIKE '%转供%'
AND bb LIKE '%11刀闸%'
UNION
SELECT bb FROM 数据库A
WHERE aa = '转运行'
AND AC NOT LIKE '%转供%'
AND bb LIKE '%11刀闸%'
UNION
SELECT bb FROM 数据库A
WHERE aa = '转运行'
AND AC LIKE '%转供%'
AND bb LIKE '%12刀闸%';
```
这个查询语句会按照您的要求,先筛选出“转冷备用”、“转热备用”、“转检修”和“转运行”这四个操作任务,然后根据AC列中是否有“转供”关键字,选择先拉开“12刀闸”还是先拉开“11刀闸”(或先合上“11刀闸”还是先合上“12刀闸”),最后返回符合条件的“操作步骤”(即bb列)。
相关问题
数据库A,列名:aa为操作任务,列名bb为操作步骤 用PGsql查看“操作步骤”列,检索关键字为“拉开”、“断开”字眼, 且该字眼后面有“检查”的字眼,
可以使用以下的SQL语句来查询符合条件的记录:
```sql
SELECT * FROM A WHERE bb LIKE '%拉开%' AND bb LIKE '%检查%' OR bb LIKE '%断开%' AND bb LIKE '%检查%';
```
其中,`A`是数据库中表格的名称,`bb`是操作步骤列的名称。`LIKE`是用来进行模糊匹配的操作符,`%`用来表示任意数量的字符。这条语句会查询出所有`bb`列中包含“拉开”或“断开”关键字,且后面跟着“检查”的记录。
数据库A,列名:aa为操作任务,列名bb为操作步骤,XX为任意数 用PGsql查看同一个“操作任务”的“操作步骤”中, 当执行上一项为XX开关、拉开XX刀闸, 下一项检查XX开关在分闸、XX刀闸在拉开, 其中检查的XX要和断开或拉开的XX名称要一致
以下是PGsql的查询语句:
```
SELECT t1.aa, t1.bb
FROM 数据库A t1
JOIN 数据库A t2 ON t1.aa = t2.aa
JOIN 数据库A t3 ON t1.aa = t3.aa
WHERE t1.bb LIKE '%XX开关、拉开XX刀闸%'
AND t2.bb LIKE '%检查XX开关在分闸、XX刀闸在拉开%'
AND SUBSTRING(t1.bb FROM '%XX开关、拉开%' FOR 2) = SUBSTRING(t2.bb FROM '%在分闸%' FOR 2)
AND SUBSTRING(t1.bb FROM '%XX开关、拉开%' FOR 2) = SUBSTRING(t2.bb FROM '%在拉开%' FOR 2)
AND SUBSTRING(t2.bb FROM '%检查%' FOR 2) = SUBSTRING(t3.bb FROM '%在分闸%' FOR 2)
AND SUBSTRING(t2.bb FROM '%检查%' FOR 2) = SUBSTRING(t3.bb FROM '%在拉开%' FOR 2);
```
请注意,在查询语句中,我将“XX”替换为实际的XX名称。另外,如果对查询语句中的任何部分不确定,请提供更多的数据和信息,以便我可以更好地帮助您。
阅读全文