首页 > 解决方案 > 如何从 SQL 中的列值中仅提取纯文本?

问题描述

我有一列 (Existing Col) 包含字母数字值,我必须从中仅提取纯文本,如下例所示:

现有柱 必填列
G14-巧克力钱543 巧克力钱
停车量 Q89 停车量
19 - 筹码费 - 20 筹码费
698 门票费 门票费

我尝试了 SUBSTRING 功能,但无法将其修改为仅采用纯文本并忽略其他所有内容。

SUBSTRING ( Existing Col,5 ,10 )

标签: mysqlsqlsubstringcalculated-columnsalphanumeric

解决方案


假设你总是至少有两个词,你可以使用:

select regexp_substr(val, '([A-Za-z]+[A-Za-z ]+[A-Za-z]+)( |$)')
from (select 'G14 - Chocolate money 543' as val union all
      select 'Parking amount Q89' union all
      select '19 - Chips fee - 20' union all
      select '698 Ticket fee'
     ) x

是一个 db<>fiddle。


推荐阅读