【发布时间】:2011-11-30 18:55:59
【问题描述】:
所以我试图从包含一堆文件夹路径的表中找到一个子字符串。我正在尝试获取“C:\Root\ IWantThisString \otherstuff”之间存在的子字符串。执行SUBSTRING(FilePath,9,CHARINDEX('\',FilePath,9) - 9) 之类的问题是,当我的路径看起来像 "C:\Root\ IWantThisString" 时,它会返回错误,因为 charindex 在 " 之后永远不会找到最后一个 '\' Root\"(因为在这种情况下没有第三个'\')。
那么有没有一种简单的方法来做这样的事情?
SELECT SUBSTRING(FilePath,9,(
IF (CHARINDEX('\',FilePath,9) = 0)
BEGIN
LEN(FilePath)
ELSE
CHARINDEX('\',FilePath,9) - 9
END))
FROM Table
或者类似的?
【问题讨论】: