首页 > 解决方案 > SQL 和 Oracle 查询以提取最后两个期间之前的所有内容

问题描述

我需要在最后两个时期之前提取所有东西

例如。

输入:AA.BBB.12.11.cc

输出:AA.BBB.12

以下是我正在使用的示例查询,但仅返回第一个句点之前的字符,但这不是我需要的。

SELECT REGEXP_SUBSTR(t.column,'[^.]+',1,1)
 AS output
 FROM MY_Table  t where t.column is not null and rownum=1

标签: sqlregexoracle

解决方案


我会REGEXP_REPLACE在这里使用:

SELECT REGEXP_REPLACE(t.column, '\.[^.]+\.[^.]+$', '')
FROM MY_table
WHERE t.column IS NOT NULL AND rownum = 1;

正则表达式模式\.[^.]+\.[^.]+$将从倒数第二个点开始匹配,直到最后的所有内容(包括最后一个点)。


推荐阅读