首页 > 解决方案 > 从字符串中提取数据

问题描述

需要帮助弄清楚如何准确地分解文件路径以获取相关详细信息,

例如:我有一个像 '\192.168.50.100\folder\march\filetypeA\filenameB 这样的文件路径

如何从这种类型的字符串中分别提取月份、文件名和文件类型?
预期输出是:

March FiletypeA FilenameB

标签: sqlsql-server

解决方案


你在寻找类似的东西

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 |
+----------------------------+

演示


推荐阅读