我需要从T-sql查询中的路径列表中提取子字符串..例如,我需要获取数据库文件的路径..如果我使用以下查询...
Select distinct (physical_name) from sys.master_files
我只想拥有数据库文件路径,而不是..文件名......我......
C:\Data\Microsoft instead of C:\Data\Microsoft\db1.mdf
C:\Data\Microsoft instead of C:\Data\Microsoft\db2.mdf
D:\Log\Microsoft instead of D:\Log\Microsoft\db1.ldf
D:\Log\Microsoft instead of D:\Log\Microsoft\db2.ldf..
提前致谢....
答案 0 :(得分:1)
仅仅因为我无法抗拒:
SELECT DISTINCT
LEFT(physical_name, LEN(physical_name) - CHARINDEX('\',REVERSE(physical_name))) as physical_path
FROM sys.master_files
使用CHARINDEX和反向字符串找到路径中最后一个'\'的位置,然后通过LEFT将所有内容切割到该点。