代码之家  ›  专栏  ›  技术社区  ›  BlueChippy

可以解析吗key:value pairs 在SQL中

  •  0
  • BlueChippy  · 技术社区  · 6 年前

    Action:DownloadDocuments|State:1|Site:250104|Ref:19014|Member:12345

    我知道我可以用弦分裂来获得成对的 key:value


    我试过了

            ;WITH cte_pairs AS
    (
    SELECT value
    FROM STRING_SPLIT(@activityValue, '|')
    )
    , cte_keyvalues AS
    (SELECT value
    FROM STRING_SPLIT(cte_pairs.value,':')
    )
    SELECT * FROM cte_keyvalues
    
    1 回复  |  直到 6 年前
        1
  •  6
  •   Martin Smith    6 年前

    是的,这很简单

    SELECT [key] = LEFT(s.value, ca.pos - 1),
           [value] = SUBSTRING(s.value, ca.pos + 1, 8000)
    FROM STRING_SPLIT(@activityValue, '|') s
    CROSS APPLY (VALUES(CHARINDEX(':', s.value))) ca(pos);