如何在SQL Server中从不同长度的字符串中选择变量

时间:2017-04-18 17:56:36

标签: sql sql-server

我试图从不同长度的SQL中的字符串中选择一个变量,但一直在努力这样做。

例如,字符串可以是:

"autoload": {
    "psr-4": {
        "MyNamespace\\": "src/"
    }
},

我试图从字符串的倒数第二行提取LapsedPrdr(这是一个变量,但总是在那个点AFAIK中)。

我一直在使用Substring和CHARINDEX函数,但一直无法正确使用它。

在下面的代码中(LogMsg是字符串)我试图检索LapsedPrdr,看看我是否可以让它工作,即使它是静态的,但无济于事。

require_once 'vendor/autoload.php';
$login = new \MyNamespace\LoginSystem();
...

很抱歉缺乏明显的知识或者之前已经提出过这个问题,并提前感谢您提供有关此问题的任何信息!

编辑:字符串恰好包含Oracle命令,但该列在SQL Server中。

谢谢。

1 个答案:

答案 0 :(得分:1)

您可能需要在子字符串中添加一些+ 1或-1。

Select substring(LogMsg,
                 CHARINDEX('"DETAILS"."TYPE" = ', LogMsg),
                 CHARINDEX(' ) )  LimitingTable WHERE ', LogMsg) -
                 CHARINDEX('"DETAILS"."TYPE" = ', LogMsg)
          ) As TYPE
From Table

SUBSTRING(string_expression,start,length)

CHARINDEX(expressionToFind,expressionToSearch [,start_location])