用pgsql查询以下数据: 1、在110kV天堂变电站10kV湾中线#28塔28T12刀闸线路侧装设10kv/接地线1组。 2、在110kV天堂变电站10kV湾中线铜接地线一组锣环支线#30杆大号侧装设10kv/接地线一组。 3、在110kV天堂变电站10kV湾中线铜接地线锣三组环支线#30杆大号侧装设10kv/=组。 要求: 先提取“接地线”和最近的“组”之间的内容,若有多个内容,则用顿号隔开 , 后判断“接地线”和“组”之间是否为阿拉伯数字或汉语数字一二三四五六七八九十。
时间: 2024-03-17 16:43:33 浏览: 65
PostgreSQL表分区功能演进 (1)_8.pptx
可以使用以下SQL语句查询符合条件的数据:
```
SELECT description
FROM table_name
WHERE regexp_matches(substring(description, '接地线(\S*?)组'), '接地线(\S*?)组', 'g') IS NOT NULL
AND regexp_matches(substring(description, '接地线(\S*?)组'), '[一二三四五六七八九十\d]+', 'g') IS NOT NULL;
```
其中,table_name是数据表的名称,description是包含数据的描述字段。这个语句会从数据表中选择符合条件的数据,即包含"接地线"和"组"之间内容的数据,并且这个内容是阿拉伯数字或汉语数字一二三四五六七八九十。如果有多个接地线,则用顿号隔开。
这个查询语句使用了正则表达式函数regexp_matches来提取符合条件的部分,然后使用正则表达式`接地线(\S*?)组`来提取"接地线"和最近的"组"之间的内容,`[一二三四五六七八九十\d]+`来判断是否符合要求。如果第一个函数提取的内容不为空,并且第二个函数提取的内容也不为空,则表示符合要求。
阅读全文