数据库A,列名:aa为操作任务,列名bb为操作步骤, bb的样例数据为: 理工站,拉开2019K11刀闸,检查2018装设GH78刀闸在拉开; 广泰是的购物车站点,断开KV母线1M开关,检查KV母线1M开关在分闸; 用PGsql查看同一个“操作任务”的“操作步骤”中, 当数据出现"断开XX开关"或"拉开XX刀闸"字眼时, 检查对应后面的"检查XX开关在分闸"或"XX刀闸在拉开"的字眼中的 XX和"断开XX开关"或"拉开XX刀闸"字眼中的XX名称是否一致。
时间: 2023-07-21 07:31:59 浏览: 93
海信智能电视刷机数据 LED46K11P C004 生产用软件数据 务必确认机编一致 整机USB升级程序
可以使用以下SQL语句来查询同一个“操作任务”的“操作步骤”中出现的对应字眼中 XX 名称是否一致:
```
SELECT aa, bb
FROM 数据库A
WHERE aa IN (
SELECT aa
FROM 数据库A
WHERE bb LIKE '%断开%开关%' OR bb LIKE '%拉开%刀闸%'
GROUP BY aa
HAVING COUNT(DISTINCT SUBSTRING(bb, 3, CHARINDEX('开关', bb)-3)) = 1
)
AND (bb LIKE '%断开%开关%' OR bb LIKE '%拉开%刀闸%')
AND bb LIKE '%检查%'+ SUBSTRING(bb, 3, CHARINDEX('开关', bb)-3) + '%在%'+ SUBSTRING(bb, CHARINDEX('在', bb)+1, LEN(bb)-CHARINDEX('在', bb)-1) + '%'
```
其中,`SUBSTRING(bb, 3, CHARINDEX('开关', bb)-3)`用于提取出“断开/拉开”后面的XX名称,`SUBSTRING(bb, CHARINDEX('在', bb)+1, LEN(bb)-CHARINDEX('在', bb)-1)`用于提取出“检查”后面XX名称所在的位置,`LIKE`和`%`用于模糊匹配对应的字眼。
阅读全文