Teradata数据库提取特定字符Ù后的数字(REGEXP_SUBSTR用法)
Teradata提取特定字符后的数字(使用REGEXP_SUBSTR)
直接用REGEXP_SUBSTR结合正则表达式就能解决,以下是具体写法和说明:
核心SQL语句
SELECT REGEXP_SUBSTR(your_column, 'Ù\\s*(\\d+)', 1, 1, '', 1) AS extracted_num FROM your_table;
参数与正则说明
your_column替换成你要处理的字段名,your_table替换成对应的表名- 正则部分
Ù\\s*(\\d+):Ù:精准匹配你指定的特殊字符\\s*:匹配Ù之后0个或任意多个空白字符(覆盖多空格场景)(\\d+):捕获Ù(及后续空格)之后的连续数字,\\d代表单个数字,+表示至少匹配1个数字,括号用于标记捕获组
- 第5个参数
'':留空表示使用默认匹配规则(若需不区分大小写可填'i',你的场景无需此设置) - 第6个参数
1:指定提取正则中第一个捕获组的内容,也就是目标数字
示例验证
- 输入字符串:
Amount changed to Ù95→ 提取结果:95 - 输入字符串:
Amount changed to Ù150→ 提取结果:150 - 若字符串为
Amount changed to Ù 200(Ù与数字间有2个空格)→ 提取结果:200
如果字段中存在多个Ù,可调整第4个参数(occurrence)指定提取第N个匹配的数字,比如设为2就取第二个Ù后的数字。
内容的提问来源于stack exchange,提问作者markthornton90
相关产品推荐
相关产品推荐

