繁体   English   中英

SQL子字符串使用charindex - somelength或string length - somelength

[英]SQL substring use charindex - somelength or string length - somelength

所以我试图从一个包含一堆文件夹路径的表中找到一个子字符串。 我试图获取“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

或类似的东西?

哈! 我找到了一个非常简单的答案,我可以在每个字符串的末尾添加一个反斜杠。 它完美无缺!

SELECT SUBSTRING(FilePath,9,(CHARINDEX('\\',FilePath + '\\',9) - 9))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM