【问题标题】:SQL substring use charindex - somelength or string length - somelengthSQL 子字符串使用 charindex - somelength 或 string length - somelength
【发布时间】: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

或者类似的?

【问题讨论】:

    标签: sql substring


    【解决方案1】:

    哈!我找到了一个非常简单的答案,我可以在每个字符串的末尾添加一个反斜杠。效果很好!

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-07
      相关资源
      最近更新 更多