sql - 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
解决方案
我会REGEXP_REPLACE
在这里使用:
SELECT REGEXP_REPLACE(t.column, '\.[^.]+\.[^.]+$', '')
FROM MY_table
WHERE t.column IS NOT NULL AND rownum = 1;
正则表达式模式\.[^.]+\.[^.]+$
将从倒数第二个点开始匹配,直到最后的所有内容(包括最后一个点)。
推荐阅读
- stanford-nlp - 尝试进行 POSTtagging 时出错:加载标记器模型时出错(可能缺少模型文件)
- node.js - AWS Lambda nodejs - 来自等待异步函数的返回值问题
- python - How can I pass a client-side parameter to a server-side route without using forms?
- windows - Is there any way to detect last packet of Bulk OUT transfer in USB from Host to Device?
- macos - 外部 SSD 中 APFS 卷的自定义路径
- python - Filling between curves only when a given curve is larger than the other
- python-3.x - 如何将databricks中的ppt文件保存到我的用户文件夹中?
- python - How to make an SMTP Server in Python to send email?
- php - 当我的 webhook 被触发时,我没有从 trello 收到任何有效负载
- c# - 具有空行的用户可编辑数据网格,即使 observableCollection 为空