我在一个 SQL 表中工作,其中一串信息存储在每个高级对象的单个列/行中。此列存储有关它们包含哪些基础对象的信息,每个子对象由 [Report] Report1.... [Report] Report2... 等标签表示,贯穿整个文本。有很多底层对象和标签,我需要能够只提取 [Report] 标签之后的值。
表结构
|对象ID|对象文本|
| 1 | [报告] 报告 1 [日期] 1 [报告] 报告 2 [日期] 2 [报告] 报告 3 [日期] 2|
| 2 | [报告] report5 [日期] 1 [报告] report8 [日期] 2 [报告] report3 [日期] 2|
| 3 | [报告] 报告 1 [日期] 1 [报告] 报告 2 [日期] 2 [报告] 报告 2 [日期] 2|
我不确定如何执行此操作,虽然我可以使用 CharIndex() 和 substring() 来接收第一个 [Report] 标记和紧随其后的值,但我不知道如何从每一行获取所有值。
选择 Substring(ObjectText,Charindex('[Report]', ObjectText) ,15) 作为来自 ObjectTable 的报告
我无法控制数据如何存储在表中,我个人不会在同一行中存储这么长的一串无关信息。