【发布时间】:2025-12-31 04:50:07
【问题描述】:
我存储的数据使我的查询返回以下内容:
EntryNum FieldNames FootnoteIDs
1 FieldA, FieldA, FieldB F1, F3, F2
2 FieldA, FieldA, FieldB F1, F4, F2
3 FieldB, FieldC, FieldD F1, F12, F13
我想按如下方式返回:
EntryNum FieldName FootnoteID
1 FieldA F1
1 FieldA F3
1 FieldB F2
2 FieldA F1
2 FieldA F4
2 FieldB F2
3 FieldB F1
3 FieldC F12
3 FieldD F13
用于此的 SQL 会是什么样子?不使用用户定义的函数或 SPLIT_STRING 是否可行?
我找到的最接近解决方案的是: Split comma separated string table row into separate rows using TSQL,但这没有我需要的双重分裂行为。更多详细信息 a) 每个条目的字段数或每个条目的脚注 ID 没有限制,并且 b) 我需要匹配的只是字段名称和脚注 ID 的顺序。
【问题讨论】:
-
看起来这里已经回答了这个问题,该技术应该能够为您需要的多列提供相应的逐行结果。 *.com/questions/19073500/…
-
我已经看过那个答案,但它不适用于这个用例。它返回一个包含所有逗号分隔项目的单列,而我需要将两个不同字段中的项目相关地放入行中。
-
对于 SQL Server:考虑他在此处详细介绍的各种用户定义函数方法sqlperformance.com/2012/07/t-sql-queries/split-strings
-
我正在处理的服务器不允许创建/使用用户定义的函数,所以很遗憾,这在这里是不可能的。
标签: sql sql-server string split