sql - 子字符串/从oracle中的字符串值中提取预期
问题描述
嗨,我有下面的文本并从下面的文本中获取文件名。但也需要日期提取。但我想要的不是硬编码,而是作为子字符串函数,我可以从文本本身中提取日期。
select
SUBSTR(fname, INSTR(fname, '_', -1)+1) as fname,
'20181217' as fdate
from
(
select '/home/dir/file_name_20181217_product.csv' as fname from dual
);
解决方案
假设日期总是出现在第一个下划线之前(你的“fname”开始的地方),并且它是 8 位数字,你可以这样做:
select
SUBSTR(fname, INSTR(fname, '_', -1)+1) as fname,
SUBSTR(fname, INSTR(fname, '_', -1)-8,8) as fdate
from
(
select '/home/dir/file_name_20181217_product.csv' as fname from dual
);
FNAME fdate
----------- --------
product.csv 20181217
推荐阅读
- javascript - vue 单选框返回字符串而不是布尔值
- javascript - 无法专注于 TextInput React Native - Amazon Fire Stick
- python - 在 Python 中 feed(input()) 有什么用?
- python - 如何从 API 的 JSON 数据中提取字典?我尝试了 Stackoverflow 的一些解决方案
- python - 为什么python构造函数接收错误的默认值?
- swiftui - 是否可以使用 GridItem 在 SwiftUI 中忽略 LazyVGrid 中的“空”项?
- flutter - Flutter/Dart:get_cli 为页面添加更多视图
- apache-camel - 未能执行目标 cxf-codegen-plugin:3.2.4:wsdl2java (generate-sources) 项目 OAS: org.apache.cxf.helpers.JavaUtils.isJava9Compatible()Z
- node.js - 如果我有 URL 和端点以及请求和响应,我如何使用 get 方法通过 API 从服务器访问数据
- mysql - 如何在 Laravel 5.8 中输入相同标题时创建独特的 slug