用pgsql查询以下数据: 1、在110kV天堂变电站10kV湾中线#28塔28T12刀闸线路侧装设10kv/接地线1组。 2、在110kV天堂变电站10kV湾中线铜接地线一组锣环支线#30杆大号侧装设10kv/接地线一组。 3、在110kV天堂变电站10kV湾中线铜接地线锣三组环支线#30杆大号侧装设10kv/=组。 要求:不要用description函数, 先提取“接地线”和最近的“组”之间的内容, 后判断“接地线”和“组”之间是否为阿拉伯数字。
时间: 2024-03-17 07:42:23 浏览: 18
假设需要查询的数据在名为“equipment”的表中,可以使用以下SQL语句进行查询:
```
SELECT
SUBSTRING(description,
(SELECT start_pos+3 FROM
(SELECT POSITION('接地线' IN description) AS start_pos) AS t1
),
(SELECT end_pos - start_pos - 3 FROM
(SELECT POSITION('接地线' IN description) AS start_pos,
POSITION('组' IN description) AS end_pos) AS t2
)
) AS content,
CASE
WHEN REGEXP_MATCHES(SUBSTRING(description,
(SELECT start_pos+3 FROM
(SELECT POSITION('接地线' IN description) AS start_pos) AS t1
),
(SELECT end_pos - start_pos - 3 FROM
(SELECT POSITION('接地线' IN description) AS start_pos,
POSITION('组' IN description) AS end_pos) AS t2
)
), '\d+')
THEN 'Yes'
ELSE 'No'
END AS is_number
FROM
equipment
WHERE
description LIKE '%10kV湾中线%'
AND description LIKE '%天堂变电站%'
AND description LIKE '%杆%'
```
解释一下SQL语句:
- 由于题目要求不使用`description`函数,因此使用了子查询来获取“接地线”和“组”在字符串中的位置;
- 其他部分的含义和第一个问题的SQL语句相同。