我有一组数据,其中包含目录的完整 UNC 路径。我只想选择路径(删除服务器/IP)。我怎样才能做到这一点?
数据:
\\nas.home.example.com\dvd\My First Video
\\nas.office.example.com\business\Report1
\\nas.office.example.com\business\Report2
\\10.10.10.10\projects\proj1\images
\\10.10.10.10\projects\proj1\queries
\\10.10.10.10\projects\proj1\output
预期结果(可以有或没有领先\
,我不在乎):
\dvd\My First Video
\business\Report1
\business\Report2
\projects\proj1\images
\projects\proj1\queries
\projects\proj1\output
我尝试了以下方法(特定于上述输入之一):
SELECT RIGHT(('\\nas.home.example.com\dvd\My First Video'),
CHARINDEX('\', REVERSE('\\nas.home.example.com\dvd\My First Video')));
这仅返回最里面的目录 ( My First Video
)。我可以添加一个偏移量来获取父级,但它只有在目录正好是那个字符数时才有效:
SELECT RIGHT(('\\nas.home.example.com\dvd\My First Video'),
CHARINDEX('\', REVERSE('\\nas.home.example.com\dvd\My First Video'))+4);
Returns \dvd\My First Video
,这很好 - 对于那个值。如何修改我的查询以适用于我的所有数据值?
我怀疑我实际上可能需要其中两个查询。一个用于具有 DNS 名称的服务器,以所有结尾,.com
另一个用于 IP 地址,所有以10.10