You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将单列多词值拆分为多列?Oracle REGEXP_SUBSTR使用求助

解决方案

针对将形如“One Thousand Four Hundred Forty Six”的字符串按每两个单词一组拆分到三列的需求,可通过调整正则匹配规则实现,具体SQL代码如下:

WITH sample_data AS (
    SELECT 'One Thousand Four Hundred Forty Six' AS num_text FROM dual
)
SELECT
    REGEXP_SUBSTR(num_text, '(\w+ \w+)', 1, 1) AS column_a,
    REGEXP_SUBSTR(num_text, '(\w+ \w+)', 1, 2) AS column_b,
    REGEXP_SUBSTR(num_text, '(\w+ \w+)', 1, 3) AS column_c
FROM sample_data;

代码说明

  • 正则表达式(\w+ \w+)用于匹配两个连续的单词:\w+匹配任意字母数字序列(单个单词),中间的空格分隔两个单词,整体实现每两个单词为一组的匹配逻辑。
  • REGEXP_SUBSTR函数的第4个参数指定匹配的出现次数:传入1取第一组(One Thousand),2取第二组(Four Hundred),3取第三组(Forty Six)。
  • 你之前的代码使用[^ ]+作为匹配规则,只能拆分出单个单词,因此无法满足按两个单词一组拆分的需求。

内容的提问来源于stack exchange,提问作者ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:45:40