sql - 从字符串中提取数据
问题描述
需要帮助弄清楚如何准确地分解文件路径以获取相关详细信息,
例如:我有一个像 '\192.168.50.100\folder\march\filetypeA\filenameB 这样的文件路径
如何从这种类型的字符串中分别提取月份、文件名和文件类型?
预期输出是:
March FiletypeA FilenameB
解决方案
你在寻找类似的东西
WITH Mnths AS
(
SELECT DATENAME(Month, DATEADD(Month, M - 1, 0)) MName
FROM
(
VALUES (1), (2), (3), (4), (5), (6), (7), (8), (9), (10), (11), (12)
) T(M)
)
SELECT REPLACE(RIGHT(T.V, LEN(V) - CHARINDEX(M.MName, T.V) + 1), '\', ' ') Result
FROM Mnths M JOIN
(
VALUES
('\192.168.50.100\folder\march\filetypeA\filenameB'),
('\192.168.50.100\folder\August\filetypeA\filenameB')
) T (V)
ON T.V LIKE CONCAT('%\', M.MName, '%');
这将返回:
+----------------------------+
| Result |
+----------------------------+
| march filetypeA filenameB |
| August filetypeA filenameB |
+----------------------------+
推荐阅读
- php - 为什么循环打印错误的值?
- elasticsearch - OpenJDK 64 位服务器 VM 警告 Elasticsearch 在 Windows 10 中不起作用
- algorithm - 算法设计:你能提供一个没有最大重量限制的背包问题的解决方案吗?
- c# - 如何做一个半圆形运动?
- python - 为 Plotly 不工作创建 choropleth 函数
- c - 如何在 X% 的时间内从传入的随机数流中进行选择?
- java - 在 Java LocalDateTime 中获取时差并将其转换为字符串格式
- javascript - Firebase 推送到实时数据库不起作用
- react-native - React Native 的弯曲底部导航栏
- javascript - 更改路线后反应降价代码突出显示不起作用