如何从任何字符位置的字符串中提取子字符串

How to Extract a Substring From a String from any character position

提问人:ashu23 提问时间:8/31/2023 更新时间:8/31/2023 访问量:47

问:

我在编写查询以从我的数据扩展插件中可用的字符串中提取子字符串时遇到了一个问题。 我有一个字段,其中包含以下格式的数据 {“Body”:“Hi TestSFMC”}。我只想从给定字段中提取 Substring- TestSFMC 。 这是我的查询 - 选择 SUBSTRING(a.MessageData, CHARINDEX(':',a.MessageData)+2, LEN(a.MessageData)-2) AS MessageData 从 FabriCare_WA_Inbound_Message_DetailsDE a 查询的问题是我得到了所需的输出,但有一个小问题,它在子字符串之后给出了结束双引号和结束大括号。就像我目前的输出是 - Hi TestSFMC“}

我只想要 Hi TestSFMC 作为输出。谁能帮我解决我的疑问?

提前非常感谢。

这是我的查询 - 选择 SUBSTRING(a.MessageData, CHARINDEX(':',a.MessageData)+2, LEN(a.MessageData)-2) AS MessageData 从 FabriCare_WA_Inbound_Message_DetailsDE a 查询的问题是我得到了所需的输出,但有一个小问题,它在子字符串之后给出了结束双引号和结束大括号。就像我目前的输出是 - Hi TestSFMC“}

我只想要 Hi TestSFMC 作为输出。谁能帮我解决我的疑问?

SQL 子字符串 Salesforce-Marketing-Cloud

评论


答:

0赞 Saravana Kumar 8/31/2023 #1

试试这个:

声明@MessageData nvarchar(max)='{“Body”:“Hi TestSFMC”}' select replace(SUBSTRING(@MessageData, CHARINDEX(':',@MessageData)+2, LEN(@MessageData)-2),'“}','')

评论

0赞 ashu23 8/31/2023
感谢您的回复。这也没有给我预期的输出。就像右边的引号一样。喜欢嗨 TestSFMC”。但无论如何,谢谢。我用过这个 - SELECT REPLACE(JSON_VALUE(a.MessageData, '$.Body'), '“', '') AS MessageData FROM FabriCare_WA_Inbound_Message_DetailsDE a 和它的摇摆。