【问题标题】:SQL Server : get part of string between 'ServicePassword=' and '&' in a url stringSQL Server:在 url 字符串中获取 'ServicePassword=' 和 '&' 之间的字符串的一部分
【发布时间】:2015-11-16 20:29:48
【问题描述】:

我正在尝试获取存储在表格中的 url 中的服务密码。

例子:

Parameters=http://google.com?ServiceUN=testUN&ServicePW=testPW&RequestType=testrequestType&MemberCode=TestMemberCode

这是我目前所处的位置,子字符串函数中的 9 仅用作测试长度,这是我遇到问题的部分。

SELECT 
    SUBSTRING(Parameters, 
              CHARINDEX('ServicePW=', Parameters) + LEN('ServicePW='), 9) 
FROM Table 
WHERE TestID = 8

【问题讨论】:

  • 您已经知道如何查找字符串的偏移量/索引;只需在ServicePW=testPW 之后查找& 的偏移量。
  • 所以,代替 9,类似 CHARINDEX('&', the Selected Substring?)

标签: sql-server database substring


【解决方案1】:
SELECT
    substring(
        Parameters, 
        charindex('ServicePW=', Parameters) + 10, -- len('ServicePW=')
        charindex('&', substring(Parameters, charindex('ServicePW=', Parameters), len(Parameters))) - 11 -- (- len('ServicePW=') - 1)
    )
FROM
    Table 
WHERE 
    TestID = 8

【讨论】:

    【解决方案2】:
    SELECT SUBSTRING(SUBSTRING(Parameters, PATINDEX('%ServicePW=%', Parameters), LEN(Parameters)), 11, PATINDEX('%&%', SUBSTRING(Parameters, PATINDEX('%ServicePW=%', Parameters), LEN(Parameters))) - 11)
    FROM Table where TestID = 8
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-17
      • 2020-06-25
      • 1970-01-01
      • 1970-01-01
      • 2018-04-06
      • 2015-02-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多